[PATCH 0/6] test: Add QEMU-based CI for EFI application boards
From: Simon Glass <simon.glass@canonical.com> Add CI test coverage for EFI application boards by installing UEFI firmware packages in the Docker image, creating a shared QEMU helper script for EFI app boot, adding per-board QEMU configs, skipping incompatible localqemu tests and enabling the new boards in CI. Simon Glass (6): docker: Install UEFI firmware packages test: Add QEMU helper for EFI application boards test: hooks: Add QEMU configs for EFI app boards test: Skip localqemu tests on EFI app boards CI: Add test coverage for EFI application boards CI: Update Docker image to 20feb26b .gitlab-ci.yml | 30 ++++++++++++- .../hooks/bin/ellesmere/conf.efi-arm_app64_na | 1 + .../bin/ellesmere/conf.efi-riscv_app64_na | 1 + .../hooks/bin/ellesmere/conf.efi-x86_app32_na | 1 + .../hooks/bin/ellesmere/conf.efi-x86_app64_na | 1 + test/hooks/bin/qemu.efi_app | 45 +++++++++++++++++++ .../hooks/bin/travis-ci/conf.efi-arm_app64_na | 14 ++++++ .../bin/travis-ci/conf.efi-riscv_app64_na | 16 +++++++ .../hooks/bin/travis-ci/conf.efi-x86_app32_na | 14 ++++++ .../hooks/bin/travis-ci/conf.efi-x86_app64_na | 14 ++++++ test/py/conftest.py | 4 ++ test/py/tests/test_ulib.py | 14 ++++++ tools/docker/Dockerfile | 10 +++++ 13 files changed, 164 insertions(+), 1 deletion(-) create mode 120000 test/hooks/bin/ellesmere/conf.efi-arm_app64_na create mode 120000 test/hooks/bin/ellesmere/conf.efi-riscv_app64_na create mode 120000 test/hooks/bin/ellesmere/conf.efi-x86_app32_na create mode 120000 test/hooks/bin/ellesmere/conf.efi-x86_app64_na create mode 100644 test/hooks/bin/qemu.efi_app create mode 100644 test/hooks/bin/travis-ci/conf.efi-arm_app64_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-riscv_app64_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-x86_app32_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-x86_app64_na -- 2.43.0 base-commit: f345e4b0ec514cba10928033ec4dd6f6f037a8d2 branch: ulibe
From: Simon Glass <simon.glass@canonical.com> Install UEFI firmware packages needed to run EFI application boards under QEMU in CI: - ovmf: OVMF 64-bit firmware for efi-x86_app64 - ovmf-ia32: OVMF 32-bit firmware for efi-x86_app32 - qemu-efi-aarch64: AAVMF firmware for efi-arm_app64 - qemu-efi-riscv64: EDK2 RISC-V firmware for efi-riscv_app64 The ovmf-ia32 and qemu-efi-riscv64 packages are installed from Noble since the Jammy versions are missing or incomplete (Jammy's ovmf-ia32 only provides the secure-boot variant of the firmware, which causes a boot timeout). Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- tools/docker/Dockerfile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 90ad3708101..7aa9e0a22bd 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -118,10 +118,12 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ net-tools \ ninja-build \ openssl \ + ovmf \ picocom \ parted \ pkg-config \ python-is-python3 \ + qemu-efi-aarch64 \ python2.7 \ python3 \ python3-dev \ @@ -146,6 +148,14 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ xxd \ zip +# Install edk2 packages from Noble (not available or incomplete in Jammy) +RUN for pkg in ovmf-ia32 qemu-efi-riscv64; do \ + wget -O /tmp/${pkg}.deb \ + http://security.ubuntu.com/ubuntu/pool/universe/e/edk2/${pkg}_2024.02-2ubuntu0.7_all.deb && \ + dpkg-deb -x /tmp/${pkg}.deb / && \ + rm /tmp/${pkg}.deb; \ + done + # Make kernels readable for libguestfs tools to work correctly RUN chmod +r /boot/vmlinu* -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> EFI application boards (efi-x86_app32, efi-x86_app64, efi-arm_app64, efi-riscv_app64) build U-Boot as an EFI application that runs under UEFI firmware. They cannot boot directly like normal QEMU boards, so the test framework needs two changes: Add qemu.efi_app, a helper script sourced by console.qemu that stages the EFI binary, a startup.nsh script and a writable copy of the UEFI firmware variables, then adds the appropriate pflash and FAT drive arguments. It supports both standard pflash drives and the blockdev-style pflash needed by the RISC-V virt machine. In conftest.py, skip ensure_spawned() for tests marked with @pytest.mark.localqemu. These tests launch their own QEMU instance, so the framework must not attempt to boot the board itself, which would fail for EFI boards and abort the entire test session. Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- test/hooks/bin/qemu.efi_app | 45 +++++++++++++++++++++++++++++++++++++ test/py/conftest.py | 4 ++++ 2 files changed, 49 insertions(+) create mode 100644 test/hooks/bin/qemu.efi_app diff --git a/test/hooks/bin/qemu.efi_app b/test/hooks/bin/qemu.efi_app new file mode 100644 index 00000000000..c0c40108f79 --- /dev/null +++ b/test/hooks/bin/qemu.efi_app @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: MIT +# Copyright 2026 Canonical Ltd. +# Written by Simon Glass <simon.glass@canonical.com> +# +# Helper script sourced by console.qemu for EFI-application boards. +# +# Sets up a staging directory with: +# - u-boot-app.efi copied from the build directory +# - startup.nsh that launches the EFI app +# - a writable copy of the UEFI firmware variables file +# +# Required variables (set by the board conf.*): +# efi_app_binary - name of the EFI app (default: u-boot-app.efi) +# efi_fw_code - path to UEFI firmware code (pflash, read-only) +# efi_fw_vars - path to UEFI firmware vars (pflash template) +# +# Optional: +# efi_use_blockdev - set to "y" for machines that need blockdev-style +# pflash (e.g. RISC-V virt) +# efi_virtio_blk - set to "y" to use virtio-blk for the FAT drive + +efi_app_binary="${efi_app_binary:-u-boot-app.efi}" + +efi_stage="${U_BOOT_BUILD_DIR}/efi_stage" +rm -rf "${efi_stage}" +mkdir -p "${efi_stage}" + +cp "${U_BOOT_BUILD_DIR}/${efi_app_binary}" "${efi_stage}/" +printf 'fs0:%s\n' "${efi_app_binary}" > "${efi_stage}/startup.nsh" +cp "${efi_fw_vars}" "${efi_stage}/vars.fd" + +if [ "${efi_use_blockdev}" = "y" ]; then + ARGS+=" -blockdev node-name=pflash0,driver=file,read-only=on,filename=${efi_fw_code}" + ARGS+=" -blockdev node-name=pflash1,driver=file,filename=${efi_stage}/vars.fd" +else + ARGS+=" -drive if=pflash,format=raw,file=${efi_fw_code},readonly=on" + ARGS+=" -drive if=pflash,format=raw,file=${efi_stage}/vars.fd" +fi + +if [ "${efi_virtio_blk}" = "y" ]; then + ARGS+=" -device virtio-blk-device,drive=efi_fat" + ARGS+=" -drive id=efi_fat,file=fat:rw:${efi_stage},format=raw" +else + ARGS+=" -drive file=fat:rw:${efi_stage},format=raw" +fi diff --git a/test/py/conftest.py b/test/py/conftest.py index b7a03669751..f4c5e390a93 100644 --- a/test/py/conftest.py +++ b/test/py/conftest.py @@ -530,6 +530,10 @@ def ubman(request): Returns: The fixture value. """ + # Tests marked @pytest.mark.localqemu run QEMU locally, so they + # don't need a target-board connection; return the fixture directly. + if request.node.get_closest_marker('localqemu'): + return ubman_fix if not ubconfig.connection_ok: pytest.skip('Cannot get target connection') return None -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> Add test hook configurations for the four EFI application boards so they can run under QEMU with UEFI firmware: - efi-x86_app32: OVMF 32-bit (OVMF32_CODE_4M.fd), qemu-system-i386 - efi-x86_app64: OVMF 64-bit (OVMF_CODE_4M.fd), qemu-system-x86_64 - efi-arm_app64: AAVMF (AAVMF_CODE.fd), qemu-system-aarch64 - efi-riscv_app64: EDK2 RISC-V (RISCV_VIRT_CODE.fd), qemu-system-riscv64 with blockdev-style pflash and virtio-blk All boards use the qemu.efi_app helper script to stage the EFI binary and UEFI firmware. Add ellesmere symlinks as well. Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- test/hooks/bin/ellesmere/conf.efi-arm_app64_na | 1 + test/hooks/bin/ellesmere/conf.efi-riscv_app64_na | 1 + test/hooks/bin/ellesmere/conf.efi-x86_app32_na | 1 + test/hooks/bin/ellesmere/conf.efi-x86_app64_na | 1 + test/hooks/bin/travis-ci/conf.efi-arm_app64_na | 14 ++++++++++++++ test/hooks/bin/travis-ci/conf.efi-riscv_app64_na | 16 ++++++++++++++++ test/hooks/bin/travis-ci/conf.efi-x86_app32_na | 14 ++++++++++++++ test/hooks/bin/travis-ci/conf.efi-x86_app64_na | 14 ++++++++++++++ 8 files changed, 62 insertions(+) create mode 120000 test/hooks/bin/ellesmere/conf.efi-arm_app64_na create mode 120000 test/hooks/bin/ellesmere/conf.efi-riscv_app64_na create mode 120000 test/hooks/bin/ellesmere/conf.efi-x86_app32_na create mode 120000 test/hooks/bin/ellesmere/conf.efi-x86_app64_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-arm_app64_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-riscv_app64_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-x86_app32_na create mode 100644 test/hooks/bin/travis-ci/conf.efi-x86_app64_na diff --git a/test/hooks/bin/ellesmere/conf.efi-arm_app64_na b/test/hooks/bin/ellesmere/conf.efi-arm_app64_na new file mode 120000 index 00000000000..8f4d76ce695 --- /dev/null +++ b/test/hooks/bin/ellesmere/conf.efi-arm_app64_na @@ -0,0 +1 @@ +../travis-ci/conf.efi-arm_app64_na \ No newline at end of file diff --git a/test/hooks/bin/ellesmere/conf.efi-riscv_app64_na b/test/hooks/bin/ellesmere/conf.efi-riscv_app64_na new file mode 120000 index 00000000000..5bf928b9bd9 --- /dev/null +++ b/test/hooks/bin/ellesmere/conf.efi-riscv_app64_na @@ -0,0 +1 @@ +../travis-ci/conf.efi-riscv_app64_na \ No newline at end of file diff --git a/test/hooks/bin/ellesmere/conf.efi-x86_app32_na b/test/hooks/bin/ellesmere/conf.efi-x86_app32_na new file mode 120000 index 00000000000..e5c78309c45 --- /dev/null +++ b/test/hooks/bin/ellesmere/conf.efi-x86_app32_na @@ -0,0 +1 @@ +../travis-ci/conf.efi-x86_app32_na \ No newline at end of file diff --git a/test/hooks/bin/ellesmere/conf.efi-x86_app64_na b/test/hooks/bin/ellesmere/conf.efi-x86_app64_na new file mode 120000 index 00000000000..a0edb3778c9 --- /dev/null +++ b/test/hooks/bin/ellesmere/conf.efi-x86_app64_na @@ -0,0 +1 @@ +../travis-ci/conf.efi-x86_app64_na \ No newline at end of file diff --git a/test/hooks/bin/travis-ci/conf.efi-arm_app64_na b/test/hooks/bin/travis-ci/conf.efi-arm_app64_na new file mode 100644 index 00000000000..aad3bae7290 --- /dev/null +++ b/test/hooks/bin/travis-ci/conf.efi-arm_app64_na @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: MIT +# Copyright 2026 Canonical Ltd. +# Written by Simon Glass <simon.glass@canonical.com> + +console_impl=qemu +qemu_machine="virt" +qemu_binary="qemu-system-aarch64" +qemu_extra_args="-m 1G -nographic -no-reboot -nic none -cpu max" +qemu_kernel_args="" +qemu_helper_script="efi_app" +efi_fw_code="/usr/share/AAVMF/AAVMF_CODE.fd" +efi_fw_vars="/usr/share/AAVMF/AAVMF_VARS.fd" +reset_impl=none +flash_impl=none diff --git a/test/hooks/bin/travis-ci/conf.efi-riscv_app64_na b/test/hooks/bin/travis-ci/conf.efi-riscv_app64_na new file mode 100644 index 00000000000..8811c1f6ac9 --- /dev/null +++ b/test/hooks/bin/travis-ci/conf.efi-riscv_app64_na @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: MIT +# Copyright 2026 Canonical Ltd. +# Written by Simon Glass <simon.glass@canonical.com> + +console_impl=qemu +qemu_machine="virt,pflash0=pflash0,pflash1=pflash1" +qemu_binary="qemu-system-riscv64" +qemu_extra_args="-m 1G -nographic -no-reboot -nic none" +qemu_kernel_args="" +qemu_helper_script="efi_app" +efi_fw_code="/usr/share/qemu-efi-riscv64/RISCV_VIRT_CODE.fd" +efi_fw_vars="/usr/share/qemu-efi-riscv64/RISCV_VIRT_VARS.fd" +efi_use_blockdev=y +efi_virtio_blk=y +reset_impl=none +flash_impl=none diff --git a/test/hooks/bin/travis-ci/conf.efi-x86_app32_na b/test/hooks/bin/travis-ci/conf.efi-x86_app32_na new file mode 100644 index 00000000000..49269cb3993 --- /dev/null +++ b/test/hooks/bin/travis-ci/conf.efi-x86_app32_na @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: MIT +# Copyright 2026 Canonical Ltd. +# Written by Simon Glass <simon.glass@canonical.com> + +console_impl=qemu +qemu_machine="pc" +qemu_binary="qemu-system-i386" +qemu_extra_args="-m 1G -nographic -no-reboot -nic none" +qemu_kernel_args="" +qemu_helper_script="efi_app" +efi_fw_code="/usr/share/OVMF/OVMF32_CODE_4M.fd" +efi_fw_vars="/usr/share/OVMF/OVMF32_VARS_4M.fd" +reset_impl=none +flash_impl=none diff --git a/test/hooks/bin/travis-ci/conf.efi-x86_app64_na b/test/hooks/bin/travis-ci/conf.efi-x86_app64_na new file mode 100644 index 00000000000..69a9dc20b41 --- /dev/null +++ b/test/hooks/bin/travis-ci/conf.efi-x86_app64_na @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: MIT +# Copyright 2026 Canonical Ltd. +# Written by Simon Glass <simon.glass@canonical.com> + +console_impl=qemu +qemu_machine="q35" +qemu_binary="qemu-system-x86_64" +qemu_extra_args="-m 1G -nographic -no-reboot -nic none" +qemu_kernel_args="" +qemu_helper_script="efi_app" +efi_fw_code="/usr/share/OVMF/OVMF_CODE_4M.fd" +efi_fw_vars="/usr/share/OVMF/OVMF_VARS_4M.fd" +reset_impl=none +flash_impl=none -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> The localqemu tests launch their own standalone QEMU instance, which is not compatible with EFI app boards that must boot through UEFI firmware. Add notbuildconfigspec('efi_app') to all localqemu tests so they are automatically skipped when CONFIG_EFI_APP is enabled. The skip is done per-test rather than in conftest.py since these particular tests are not relevant to the EFI app, regardless of whether they use local QEMU. Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- test/py/tests/test_ulib.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/py/tests/test_ulib.py b/test/py/tests/test_ulib.py index f4234253b7d..f06075d9e20 100644 --- a/test/py/tests/test_ulib.py +++ b/test/py/tests/test_ulib.py @@ -279,6 +279,7 @@ def run_x86_rom_demo(ubman, qemu_binary): assert_demo_output(out) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu-x86') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_rom(ubman): @@ -286,6 +287,7 @@ def test_ulib_demo_rom(ubman): run_x86_rom_demo(ubman, 'qemu-system-i386') @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu-x86_64_nospl') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_rom_64(ubman): @@ -316,6 +318,7 @@ def run_x86_rom_rust_demo(ubman, qemu_binary): assert_demo_output(out) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu-x86') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_rom(ubman): @@ -323,6 +326,7 @@ def test_ulib_rust_demo_rom(ubman): run_x86_rom_rust_demo(ubman, 'qemu-system-i386') @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu-x86_64_nospl') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_rom_64(ubman): @@ -386,6 +390,7 @@ def run_bios_rust_demo(ubman, qemu_binary, extra_qemu_args=None): assert_demo_output(out) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu_arm64') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_arm64(ubman): @@ -393,6 +398,7 @@ def test_ulib_demo_arm64(ubman): run_bios_demo(ubman, 'qemu-system-aarch64', ['-cpu', 'cortex-a57']) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu_arm64') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_arm64(ubman): @@ -400,6 +406,7 @@ def test_ulib_rust_demo_arm64(ubman): run_bios_rust_demo(ubman, 'qemu-system-aarch64', ['-cpu', 'cortex-a57']) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu-riscv64') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_riscv64(ubman): @@ -407,6 +414,7 @@ def test_ulib_demo_riscv64(ubman): run_bios_demo(ubman, 'qemu-system-riscv64') @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('qemu-riscv64') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_riscv64(ubman): @@ -508,6 +516,7 @@ def run_efi_rust_demo(ubman, qemu_binary, fw_code, fw_vars, assert_demo_output(out) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('efi-x86_app64') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_efi_x86(ubman): @@ -517,6 +526,7 @@ def test_ulib_demo_efi_x86(ubman): '/usr/share/OVMF/OVMF_VARS_4M.fd') @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('efi-x86_app64') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_efi_x86(ubman): @@ -526,6 +536,7 @@ def test_ulib_rust_demo_efi_x86(ubman): '/usr/share/OVMF/OVMF_VARS_4M.fd') @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('efi-arm_app64') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_efi_arm64(ubman): @@ -535,6 +546,7 @@ def test_ulib_demo_efi_arm64(ubman): ['--machine', 'virt', '-cpu', 'max']) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('efi-arm_app64') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_efi_arm64(ubman): @@ -544,6 +556,7 @@ def test_ulib_rust_demo_efi_arm64(ubman): ['--machine', 'virt', '-cpu', 'max']) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('efi-riscv_app64') @pytest.mark.buildconfigspec("examples") def test_ulib_demo_efi_riscv64(ubman): @@ -554,6 +567,7 @@ def test_ulib_demo_efi_riscv64(ubman): ['--machine', 'virt']) @pytest.mark.localqemu +@pytest.mark.notbuildconfigspec('efi_app') @pytest.mark.boardspec('efi-riscv_app64') @pytest.mark.buildconfigspec("rust_examples") def test_ulib_rust_demo_efi_riscv64(ubman): -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> Add test.py CI jobs for the four EFI application boards: - efi-x86_app32 - efi-x86_app64 - efi-arm_app64 - efi-riscv_app64 (with cmd_smbios excluded as it is not supported) All jobs use OVERRIDE="-a ~CONSOLE_PAGER" to disable the console pager which causes test timeouts by waiting for interactive input. Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- .gitlab-ci.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 648c3f52c44..1291bfd3af0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -550,6 +550,13 @@ qemu_arm64 test.py: TEST_PY_TEST_SPEC: "not sleep" <<: *buildman_and_testpy_dfn +efi-arm_app64 test.py: + variables: + TEST_PY_BD: "efi-arm_app64" + TEST_PY_TEST_SPEC: "not sleep" + OVERRIDE: "-a ~CONSOLE_PAGER" + <<: *buildman_and_testpy_dfn + qemu_arm64_lwip test.py: variables: TEST_PY_BD: "qemu_arm64_lwip" @@ -628,6 +635,13 @@ qemu-riscv64 test.py: TEST_PY_TEST_SPEC: "not sleep" <<: *buildman_and_testpy_dfn +efi-riscv_app64 test.py: + variables: + TEST_PY_BD: "efi-riscv_app64" + TEST_PY_TEST_SPEC: "not sleep and not cmd_smbios" + OVERRIDE: "-a ~CONSOLE_PAGER" + <<: *buildman_and_testpy_dfn + qemu-riscv32_spl test.py: variables: TEST_PY_BD: "qemu-riscv32_spl" @@ -658,6 +672,20 @@ qemu-x86 test.py: TEST_PY_TEST_SPEC: "not sleep" <<: *buildman_and_testpy_dfn +efi-x86_app32 test.py: + variables: + TEST_PY_BD: "efi-x86_app32" + TEST_PY_TEST_SPEC: "not sleep" + OVERRIDE: "-a ~CONSOLE_PAGER" + <<: *buildman_and_testpy_dfn + +efi-x86_app64 test.py: + variables: + TEST_PY_BD: "efi-x86_app64" + TEST_PY_TEST_SPEC: "not sleep" + OVERRIDE: "-a ~CONSOLE_PAGER" + <<: *buildman_and_testpy_dfn + qemu-x86_64 test.py: variables: TEST_PY_BD: "qemu-x86_64" -- 2.43.0
From: Simon Glass <simon.glass@canonical.com> Update the CI runner image to jammy-20250404-20feb26 which includes the UEFI firmware packages needed for EFI app board testing. Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1291bfd3af0..2eba0e58cd7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ default: - ${DEFAULT_TAG} # Grab our configured image. The source for this is found # in the u-boot tree at tools/docker/Dockerfile - image: ${MIRROR_DOCKER}/sjg20/u-boot-gitlab-ci-runner:jammy-20250404-19feb26 + image: ${MIRROR_DOCKER}/sjg20/u-boot-gitlab-ci-runner:jammy-20250404-20feb26b services: - name: container-$(CI_JOB_ID) command: ["--rm"] -- 2.43.0
participants (1)
-
Simon Glass