1212 GOTESTSUM_CMD : " gotestsum --format standard-verbose --debug --"
1313 GOTESTSUM_CMD_RAW : " gotestsum --format standard-verbose --debug --raw-command -- go tool test2json -t"
1414
15- LCOW_ARTIFACT_PROJECT : " ContainerPlatform"
16- LCOW_ARTIFACT_FEED : " ContainerPlat-Dev"
17- LCOW_ARTIFACT_NAME : " azurelinux-uvm"
18- LCOW_ARTIFACT_VERSION : " *.*.*"
19- LINUX_BOOT_FILES_PATH : ${{ github.workspace }}/LinuxBootFiles
20-
2115jobs :
2216 lint :
2317 runs-on : " windows-2022"
@@ -238,100 +232,6 @@ jobs:
238232 exit $LASTEXITCODE
239233 }
240234
241- # This job downloads the Linux boot files from the Azure Artifact feed and
242- # create the rootfs containing the local Linux-GCS. It needs to be run on
243- # the 1ES github runner pool in order to access the Azure Artifact feed.
244- create-linux-boot-files :
245- runs-on :
246- - self-hosted
247- - 1ES.Pool=containerplat-github-runner-pool-east-us-2
248- - 1ES.ImageOverride=github-mms-ubuntu-22
249- permissions :
250- id-token : write # This is required for OIDC login (azure/login) to succeed
251- contents : read # This is required for actions/checkout to succeed
252- steps :
253- - name : Checkout hcsshim
254- uses : actions/checkout@v4
255- with :
256- show-progress : false
257-
258- - name : Azure OIDC Login
259- uses : azure/login@v2
260- with :
261- client-id : " 930a0428-2b45-4cf9-9afe-b81bde516504"
262- tenant-id : " 72f988bf-86f1-41af-91ab-2d7cd011db47"
263- allow-no-subscriptions : true
264-
265- - name : Download artifact from feed
266- uses : azure/cli@v2
267- with :
268- azcliversion : latest
269- inlineScript : |
270- az extension add --name azure-devops
271- export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
272-
273- az artifacts universal download \
274- --organization "https://msazure.visualstudio.com/" \
275- --project ${{ env.LCOW_ARTIFACT_PROJECT }} \
276- --scope project \
277- --feed ${{ env.LCOW_ARTIFACT_FEED }} \
278- --name ${{ env.LCOW_ARTIFACT_NAME }} \
279- --version ${{ env.LCOW_ARTIFACT_VERSION }} \
280- --path ./downloaded_artifacts
281-
282- - name : Show downloaded lcow artifacts
283- run : find ./downloaded_artifacts -maxdepth 3 -ls
284-
285- - name : Create directory for storing linux boot files
286- run : |
287- mkdir -p ${{ env.LINUX_BOOT_FILES_PATH }}/
288- mkdir -p ./temp_rootfs/
289-
290- - name : Copy Linux kernel and rootfs tar files
291- run : |
292- mv ./downloaded_artifacts/LinuxBootFiles/kernel ${{ env.LINUX_BOOT_FILES_PATH }}/
293- mv ./downloaded_artifacts/LinuxBootFiles/vmlinux ${{ env.LINUX_BOOT_FILES_PATH }}/
294- mv ./downloaded_artifacts/rootfs-*.tar.gz ./temp_rootfs/
295-
296- - name : Install dependencies
297- run : |
298- sudo apt-get update
299- sudo apt-get install -y make gcc binutils linux-headers-generic \
300- libarchive-tools btrfs-progs libseccomp-dev pkg-config cpio libkmod-dev
301-
302- - name : Create rootfs containing the local Linux-GCS
303- run : |
304- chmod a+x ${{ github.workspace }}/hack/catcpio.sh
305-
306- # Find the full file name for rootfs tar
307- ROOTFS_TAR=$(ls temp_rootfs/rootfs-*.tar.gz | head -n 1)
308- echo "The full file name is $ROOTFS_TAR"
309-
310- make clean
311- sudo make KMOD=1 BASE=${{ github.workspace }}/$ROOTFS_TAR rootfs
312-
313- - name : Move newly created rootfs.vhd and initrd.img
314- run : |
315- mv out/rootfs.vhd ${{ env.LINUX_BOOT_FILES_PATH }}/
316- mv out/initrd.img ${{ env.LINUX_BOOT_FILES_PATH }}/
317-
318- # This is a workaround to overcome the limitation of actions/upload-artifact@v4 used in later jobs.
319- # See https://github.com/actions/upload-artifact/tree/v4/?tab=readme-ov-file#permission-loss.
320- - name : Tar the files to preserve file permissions prior to upload
321- run : |
322- cd ${{ env.LINUX_BOOT_FILES_PATH }}
323- tar -cvf ../linux_boot_files.tar .
324-
325- # Upload the Linux boot files so that they can be used in later jobs.
326- - name : Upload Linux boot files to artifact
327- uses : actions/upload-artifact@v4
328- with :
329- name : linux_artifact
330- path : linux_boot_files.tar
331- if-no-files-found : error
332- overwrite : true
333- retention-days : 1
334-
335235 test-linux :
336236 needs : [lint, protos, verify-vendor, go-gen]
337237 runs-on : ubuntu-latest
@@ -367,7 +267,7 @@ jobs:
367267
368268 test-windows :
369269 name : test-windows (${{ matrix.name }})
370- needs : [lint, protos, verify-vendor, go-gen, create-linux-boot-files ]
270+ needs : [lint, protos, verify-vendor, go-gen]
371271 runs-on : ${{ matrix.runner }}
372272 strategy :
373273 fail-fast : false
@@ -376,15 +276,9 @@ jobs:
376276 [windows-2022, windows-2019]
377277 include :
378278 - name : " windows-2019"
379- runner :
380- - self-hosted
381- - 1ES.Pool=containerplat-github-runner-pool-east-us-2
382- - 1ES.ImageOverride=github-mms-ws2019-containers-enabled
279+ runner : [self-hosted, 1ES.Pool=containerplat-github-runner-pool-east-us-2, 1ES.ImageOverride=github-mms-ws2019-containers-enabled]
383280 - name : " windows-2022"
384- runner :
385- - self-hosted
386- - 1ES.Pool=containerplat-github-runner-pool-east-us-2
387- - 1ES.ImageOverride=github-mms-ws2022-containers-enabled
281+ runner : [self-hosted, 1ES.Pool=containerplat-github-runner-pool-east-us-2, 1ES.ImageOverride=github-mms-ws2022-containers-enabled]
388282 steps :
389283 - name : Checkout
390284 uses : actions/checkout@v4
@@ -450,26 +344,6 @@ jobs:
450344 ${{ env.GOTESTSUM_CMD_RAW }} ./containerd-shim-runhcs-v1.test.exe '-test.v'
451345 working-directory : test
452346
453- - name : Create directory for Linux boot files
454- shell : pwsh
455- run : mkdir -p ${{ env.LINUX_BOOT_FILES_PATH }}/
456-
457- # Download Linux kernel files and newly created rootfs containing the Linux-GCS under testing.
458- - name : Download Linux boot files from artifact
459- uses : actions/download-artifact@v4
460- with :
461- name : linux_artifact
462-
463- - name : Extract Linux boot files
464- shell : pwsh
465- run : |
466- tar -xvf linux_boot_files.tar -C ${{ env.LINUX_BOOT_FILES_PATH }}/
467-
468- - name : Display downloaded Linux boot files
469- shell : pwsh
470- run : |
471- Get-ChildItem -Recurse -Force -Path ${{ env.LINUX_BOOT_FILES_PATH }}/
472-
473347 - name : Build and run functional testing binary
474348 run : |
475349 ${{ env.GO_BUILD_TEST_CMD }} ./functional
@@ -486,12 +360,8 @@ jobs:
486360 exit $LASTEXITCODE
487361 }
488362
489- # Don't run LCOW integrity tests.
490- # Windows/Linux uVM tests will be run on 1ES Github Runner Pool.
491- $cmd = '${{ env.GOTESTSUM_CMD_RAW }} ./functional.test.exe ' +
492- '-exclude=LCOWIntegrity ' +
493- '-linux-bootfiles=${{ env.LINUX_BOOT_FILES_PATH }} ' +
494- '-test.timeout=1h -test.v -log-level=info'
363+ # Don't run Linux uVM (ie, nested virt) or LCOW integrity tests. Windows uVM tests will be run on 1ES runner pool.
364+ $cmd = '${{ env.GOTESTSUM_CMD_RAW }} ./functional.test.exe -exclude=LCOW,LCOWIntegrity -test.timeout=1h -test.v -log-level=info'
495365 $cmd = $cmd -replace 'gotestsum', $gotestsum
496366 Write-Host "gotestsum command: $cmd"
497367
0 commit comments