12
12
GOTESTSUM_CMD : " gotestsum --format standard-verbose --debug --"
13
13
GOTESTSUM_CMD_RAW : " gotestsum --format standard-verbose --debug --raw-command -- go tool test2json -t"
14
14
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
-
21
15
jobs :
22
16
lint :
23
17
runs-on : " windows-2022"
@@ -238,100 +232,6 @@ jobs:
238
232
exit $LASTEXITCODE
239
233
}
240
234
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
-
335
235
test-linux :
336
236
needs : [lint, protos, verify-vendor, go-gen]
337
237
runs-on : ubuntu-latest
@@ -367,7 +267,7 @@ jobs:
367
267
368
268
test-windows :
369
269
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]
371
271
runs-on : ${{ matrix.runner }}
372
272
strategy :
373
273
fail-fast : false
@@ -376,15 +276,9 @@ jobs:
376
276
[windows-2022, windows-2019]
377
277
include :
378
278
- 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]
383
280
- 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]
388
282
steps :
389
283
- name : Checkout
390
284
uses : actions/checkout@v4
@@ -450,26 +344,6 @@ jobs:
450
344
${{ env.GOTESTSUM_CMD_RAW }} ./containerd-shim-runhcs-v1.test.exe '-test.v'
451
345
working-directory : test
452
346
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
-
473
347
- name : Build and run functional testing binary
474
348
run : |
475
349
${{ env.GO_BUILD_TEST_CMD }} ./functional
@@ -486,12 +360,8 @@ jobs:
486
360
exit $LASTEXITCODE
487
361
}
488
362
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'
495
365
$cmd = $cmd -replace 'gotestsum', $gotestsum
496
366
Write-Host "gotestsum command: $cmd"
497
367
0 commit comments