diff options
author | Tom Rini <trini@konsulko.com> | 2023-09-01 16:41:42 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-09-06 13:51:20 -0400 |
commit | c9836c0fb743a6aa88b8ba8aa41e461ef8340453 (patch) | |
tree | 3deebd67a25b52b1da7ba4c0049c1411de584eaa /.azure-pipelines.yml | |
parent | 8ae5feca187823a8fd1a0c780c944752a44e5c54 (diff) | |
download | u-boot-c9836c0fb743a6aa88b8ba8aa41e461ef8340453.tar.gz u-boot-c9836c0fb743a6aa88b8ba8aa41e461ef8340453.tar.bz2 u-boot-c9836c0fb743a6aa88b8ba8aa41e461ef8340453.zip |
Azure: Split sandbox and qemu test.py runs
Currently, most sandbox runs take a long time (due to running so many
tests) while QEMu based test.py runs are fairly short. Split the
pipeline here so that we get more consistent average run times.
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to '.azure-pipelines.yml')
-rw-r--r-- | .azure-pipelines.yml | 61 |
1 files changed, 44 insertions, 17 deletions
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 7dc5f2848a..c127fd3ca2 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -280,10 +280,10 @@ stages: displayName: 'Publish test.sh' artifact: testsh -- stage: test_py +- stage: test_py_sandbox jobs: - - job: test_py - displayName: 'test.py' + - job: test_py_sandbox + displayName: 'test.py for sandbox' pool: vmImage: $(ubuntu_vm) strategy: @@ -320,6 +320,47 @@ stages: BUILD_ENV: "FTRACE=1 NO_LTO=1" TEST_PY_TEST_SPEC: "trace" OVERRIDE: "-a CONFIG_TRACE=y -a CONFIG_TRACE_EARLY=y -a CONFIG_TRACE_EARLY_SIZE=0x01000000 -a CONFIG_TRACE_BUFFER_SIZE=0x02000000" + steps: + - download: current + artifact: testsh + - script: | + # make current directory writeable to uboot user inside the container + # as sandbox testing need create files like spi flash images, etc. + # (TODO: clean up this in the future) + chmod 777 . + chmod 755 $(Pipeline.Workspace)/testsh/test.sh + # Filesystem tests need extra docker args to run + set -- + # mount -o loop needs the loop devices + if modprobe loop; then + for d in $(find /dev -maxdepth 1 -name 'loop*'); do + set -- "$@" --device $d:$d + done + fi + # Needed for mount syscall (for guestmount as well) + set -- "$@" --cap-add SYS_ADMIN + # Default apparmor profile denies mounts + set -- "$@" --security-opt apparmor=unconfined + # Some tests using libguestfs-tools need the fuse device to run + docker run "$@" --device /dev/fuse:/dev/fuse \ + -v $PWD:$(work_dir) \ + -v $(Pipeline.Workspace):$(Pipeline.Workspace) \ + -e WORK_DIR="${WORK_DIR}" \ + -e TEST_PY_BD="${TEST_PY_BD}" \ + -e TEST_PY_ID="${TEST_PY_ID}" \ + -e TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" \ + -e OVERRIDE="${OVERRIDE}" \ + -e BUILD_ENV="${BUILD_ENV}" $(ci_runner_image) \ + $(Pipeline.Workspace)/testsh/test.sh + +- stage: test_py_qemu + jobs: + - job: test_py_qemu + displayName: 'test.py for QEMU platforms' + pool: + vmImage: $(ubuntu_vm) + strategy: + matrix: coreboot: TEST_PY_BD: "coreboot" TEST_PY_ID: "--id qemu" @@ -424,20 +465,6 @@ stages: # (TODO: clean up this in the future) chmod 777 . chmod 755 $(Pipeline.Workspace)/testsh/test.sh - # Filesystem tests need extra docker args to run - set -- - if [[ "${TEST_PY_BD}" == "sandbox" ]]; then - # mount -o loop needs the loop devices - if modprobe loop; then - for d in $(find /dev -maxdepth 1 -name 'loop*'); do - set -- "$@" --device $d:$d - done - fi - # Needed for mount syscall (for guestmount as well) - set -- "$@" --cap-add SYS_ADMIN - # Default apparmor profile denies mounts - set -- "$@" --security-opt apparmor=unconfined - fi # Some tests using libguestfs-tools need the fuse device to run docker run "$@" --device /dev/fuse:/dev/fuse \ -v $PWD:$(work_dir) \ |