@@ -15,30 +15,8 @@ concurrency:
1515 cancel-in-progress : true
1616
1717jobs :
18- # detect step checks what machines the later steps should run on
19- detect :
20- runs-on : ubuntu-latest
21- outputs :
22- build-runs-on : ${{ steps.detect.outputs.buildon }}
23- tests-runs-on : ${{ steps.detect.outputs.testson }}
24- tests : ${{ steps.detect.outputs.tests }}
25- steps :
26- - id : detect
27- run : |
28- case "${{inputs.arch}}" in
29- x86_64)
30- echo "buildon='ubuntu-latest'" >> $GITHUB_OUTPUT
31- echo "testson='macos-latest'" >> $GITHUB_OUTPUT
32- echo "tests=['test-smoke', 'test-upgrade', 'test-recovery', 'test-fallback', 'test-fsck', 'test-grubfallback']" >> $GITHUB_OUTPUT ;;
33- aarch64)
34- echo "buildon=['self-hosted', 'arm64']" >> $GITHUB_OUTPUT
35- echo "testson=['self-hosted', 'arm64']" >> $GITHUB_OUTPUT
36- echo "tests=['test-smoke']" >> $GITHUB_OUTPUT ;;
37- esac
38-
3918 build-iso :
40- needs : detect
41- runs-on : ${{ fromJson(needs.detect.outputs.build-runs-on) }}
19+ runs-on : ubuntu-latest
4220 env :
4321 FLAVOR : ${{ inputs.flavor }}
4422 ARCH : ${{ inputs.arch }}
7755 enableCrossOsArchive : true
7856
7957 build-disk :
80- needs : detect
81- runs-on : ${{ fromJson(needs.detect.outputs.build-runs-on) }}
58+ runs-on : ubuntu-latest
8259 env :
8360 FLAVOR : ${{ inputs.flavor }}
8461 ARCH : ${{ inputs.arch }}
@@ -123,15 +100,14 @@ jobs:
123100 tests-matrix :
124101 needs :
125102 - build-disk
126- - detect
127- runs-on : ${{ fromJson(needs.detect.outputs.tests-runs-on) }}
103+ runs-on : ubuntu-latest
128104 env :
129105 FLAVOR : ${{ inputs.flavor }}
130106 ARCH : ${{ inputs.arch }}
131107 COS_TIMEOUT : 1600
132108 strategy :
133109 matrix :
134- test : ${{ fromJson(needs.detect.outputs.tests) }}
110+ test : ['test-smoke', 'test-recovery', 'test-grubfallback', 'test-fallback', 'test-fsck', 'test-upgrade']
135111 fail-fast : false
136112 steps :
137113 - uses : actions/checkout@v3
@@ -154,22 +130,16 @@ jobs:
154130 key : ${{ env.cache-name }}-${{ hashFiles('Dockerfile', '**/go.sum', '**/pkg/**', '**/examples/**', '**/cmd/**', '**/vendor/**', '**/Makefile', '**/main.go') }}
155131 enableCrossOsArchive : true
156132 fail-on-cache-miss : true
157- - if : ${{ env.ARCH == 'x86_64' }}
158- name : Run VM script dependencies
159- run : |
160- brew update;
161- brew install qemu bash coreutils
162- - if : ${{ env.ARCH == 'x86_64' }}
163- name : Prepare test (x86_64)
164- run : |
165- make DISK=/tmp/elemental-${{ env.FLAVOR }}.${{ env.ARCH}}.qcow2 ELMNTL_ACCEL=hvf ELMNTL_TARGETARCH=${{ env.ARCH }} ELMNTL_FIRMWARE=$(find /usr/local/Cellar/qemu -name edk2-${{ env.ARCH }}-code.fd -print -quit) prepare-test
166- - if : ${{ env.ARCH == 'aarch64' }}
167- name : Prepare test (aarch64)
133+ - name : Enable KVM group perms
168134 run : |
169- make DISK=/tmp/elemental-${{ env.FLAVOR }}.${{ env.ARCH}}.qcow2 ELMNTL_ACCEL=none ELMNTL_MACHINETYPE=virt ELMNTL_TARGETARCH=${{ env.ARCH }} ELMNTL_FIRMWARE=/usr/share/AAVMF/AAVMF_CODE.fd prepare-test
135+ sudo apt-get update
136+ sudo apt-get install qemu qemu-utils ovmf qemu-system-x86
137+ echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
138+ sudo udevadm control --reload-rules
139+ sudo udevadm trigger --name-match=kvm
170140 - name : Run ${{ matrix.test }}
171141 run : |
172- make DISK=/tmp/elemental-${{ env.FLAVOR }}.${{ env.ARCH}}.qcow2 ${{ matrix.test }}
142+ make DISK=/tmp/elemental-${{ env.FLAVOR }}.${{ env.ARCH}}.qcow2 ELMNTL_TARGETARCH=${{ env.ARCH }} ELMNTL_FIRMWARE=/usr/share/OVMF/OVMF_CODE.fd ${{ matrix.test }}
173143 # TODO include other logs SUT collects on failure
174144 - name : Upload serial console for ${{ matrix.test }}
175145 uses : actions/upload-artifact@v3
0 commit comments