File: alpine-unittests.yml

package info (click to toggle)
cloud-init 25.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,412 kB
  • sloc: python: 135,894; sh: 3,883; makefile: 141; javascript: 30; xml: 22
file content (72 lines) | stat: -rw-r--r-- 2,268 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

name: Alpine Unittests

on:
  pull_request:
    branches-ignore:
      - 'ubuntu/**'
  push:
    branches:
      - main

concurrency:
  group: 'ci-${{ github.workflow }}-${{ github.ref }}'
  cancel-in-progress: true

defaults:
  run:
    shell: sh -ex {0}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:

      - name: "Checkout"
        uses: actions/checkout@v4
        with:
          # Fetch all tags for tools/read-version
          fetch-depth: 0

      - name: Setup LXD
        uses: canonical/setup-lxd@v0.1.2

      - name: Create alpine container
        # the current shell doesn't have lxd as one of the groups
        # so switch groups to run lxd commands
        run: lxc launch images:alpine/edge alpine

      - name: Check networking (for debugging)
        run: |
          lxc exec alpine -- ping -c 1 google.com || true
          lxc exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true
          lxc exec alpine -- nslookup www.google.com || true
          lxc exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true

      - name: Install dependencies
        run: lxc exec alpine -- apk add py3-tox git tzdata

      - name: Mount source into container directory
        run: lxc config device add alpine gitdir disk source=$(pwd) path=/root/cloud-init-ro

      - name: Create a r/w directory to run tests in
        # without this, tox fails during package install
        run: |
          lxc exec alpine -- git config --global --add safe.directory /root/cloud-init-ro/.git
          lxc exec alpine -- git clone cloud-init-ro cloud-init-rw

      - name: Set a timezone
        # test for regression of GH-5158
        # https://github.com/canonical/cloud-init/issues/5158
        run: lxc exec alpine -- ln -s /usr/share/zoneinfo/Europe/Brussels /etc/localtime

      - name: Set up tox environment
        # Setup the environment and then tell pytest to do essentially nothing
        run: lxc exec alpine --cwd /root/cloud-init-rw -- tox -e py3 -- --cache-show=

      - name: Stop network
        # Take down network interfaces to ensure tests don't use network
        run: lxc exec alpine -- ifdown -a

      - name: Run unittests
        run: lxc exec alpine --cwd /root/cloud-init-rw -- sh -c 'tox -e py3 -- --color=yes'