diff options
Diffstat (limited to '.gitlab-ci.yml')
| -rw-r--r-- | .gitlab-ci.yml | 144 |
1 files changed, 76 insertions, 68 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 85401d3e09b..434945ce350 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,10 +2,8 @@ variables: DEFAULT_ALL_TAG: "all" - DEFAULT_ARM64_TAG: "arm64" - DEFAULT_FAST_ARM64_TAG: "fast arm64" DEFAULT_AMD64_TAG: "amd64" - DEFAULT_FAST_AMD64_TAG: "fast amd64" + DEFAULT_FAST_TAG: "fast" MIRROR_DOCKER: docker.io SJG_LAB: "" PLATFORM: linux/amd64,linux/arm64 @@ -20,7 +18,7 @@ workflow: # Grab our configured image. The source for this is found # in the u-boot tree at tools/docker/Dockerfile -image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20250714-25Jul2025 +image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20251001-04Nov2025 # We run some tests in different order, to catch some failures quicker. stages: @@ -39,15 +37,15 @@ stages: - git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks # qemu_arm64_lwip_defconfig is the same as qemu_arm64 but with NET_LWIP enabled. # The test config and the boardenv file from qemu_arm64 can be re-used so create symlinks - - ln -s conf.qemu_arm64_na /tmp/uboot-test-hooks/bin/travis-ci/conf.qemu_arm64_lwip_na + - ln -s conf.qemu_arm64 /tmp/uboot-test-hooks/bin/travis-ci/conf.qemu_arm64_lwip_na - ln -s u_boot_boardenv_qemu_arm64_na.py /tmp/uboot-test-hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py - ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname` - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname` - - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then + - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]] || [[ "${TEST_PY_BD}" == "xilinx_mbv32_smode" ]]; then wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ; export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin; fi - - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then + - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "${TEST_PY_BD}" == "sifive_unleashed" ]] || [[ "${TEST_PY_BD}" == "xilinx_mbv64_smode" ]]; then wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ; export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin; fi @@ -97,8 +95,18 @@ stages: /opt/coreboot/cbfstool ${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom add-flat-binary -f ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000; fi # If we have TF-A binaries, we need to use them. - - if [[ -d /opt/tf-a/"${TEST_PY_BD}" ]]; then - cp /opt/tf-a/"${TEST_PY_BD}"/fip.bin /opt/tf-a/"${TEST_PY_BD}"/bl1.bin /tmp/; + - tfa_dir="" + - rm -f /tmp/fip.bin + - rm -f /tmp/bl1.bin + - if [[ -d /opt/tf-a/"${TEST_PY_BD}${TEST_PY_ID//--id /_}" ]]; then + tfa_dir="/opt/tf-a/${TEST_PY_BD}${TEST_PY_ID//--id /_}"; + elif [[ -d /opt/tf-a/"${TEST_PY_BD}" ]]; then + tfa_dir="/opt/tf-a/${TEST_PY_BD}"; + fi + - if [[ -n "$tfa_dir" ]]; then + cp "$tfa_dir"/fip.bin "$tfa_dir"/bl1.bin /tmp/; + fi + - if [ -f /tmp/fip.bin ] && [ -f /tmp/bl1.bin ]; then export fip=/tmp/fip.bin; export bl1=/tmp/bl1.bin; export PATH=/opt/Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3:${PATH}; @@ -134,12 +142,9 @@ stages: build all platforms in a single job: stage: world build dependencies: [] - parallel: - matrix: - - HOST: "fast arm64" - - HOST: "fast amd64" + needs: [ "sandbox test.py" ] tags: - - ${HOST} + - ${DEFAULT_FAST_TAG} script: # Prepare python environment - python3 -m venv /tmp/venv; @@ -245,15 +250,6 @@ Run pylint: - export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt" - make pylint_err -# Check for pre-schema driver model tags -Check for pre-schema tags: - extends: .testsuites - script: - - git config --global --add safe.directory "${CI_PROJECT_DIR}"; - # If grep succeeds and finds a match the test fails as we should - # have no matches. - - git grep u-boot,dm- -- '*.dts*' && exit 1 || exit 0 - # Check we can package the Python tools Check packing of Python tools: extends: .testsuites @@ -309,12 +305,6 @@ sandbox64 with clang test.py: <<: *buildman_and_testpy_dfn sandbox64_lwip test.py: - parallel: - matrix: - - HOST: "arm64" - - HOST: "amd64" - tags: - - ${HOST} variables: TEST_PY_BD: "sandbox64_lwip" <<: *buildman_and_testpy_dfn @@ -361,8 +351,6 @@ evb-ast2500 test.py: <<: *buildman_and_testpy_dfn sandbox_flattree test.py: - tags: - - ${DEFAULT_AMD64_TAG} variables: TEST_PY_BD: "sandbox_flattree" <<: *buildman_and_testpy_dfn @@ -399,6 +387,13 @@ qemu_arm64_lwip test.py: TEST_PY_TEST_SPEC: "test_net_dhcp or test_net_ping or test_net_tftpboot" <<: *buildman_and_testpy_dfn +qemu_arm64_tfa_fw_handoff test.py: + variables: + TEST_PY_BD: "qemu_arm64" + TEST_PY_ID: "--id fw_handoff_tfa_optee" + TEST_PY_TEST_SPEC: "test_fw_handoff" + <<: *buildman_and_testpy_dfn + qemu_arm_sbsa test.py: variables: TEST_PY_BD: "qemu-arm-sbsa" @@ -534,20 +529,32 @@ sifive_unleashed_spi-nor test.py: TEST_PY_ID: "--id spi-nor_qemu" <<: *buildman_and_testpy_dfn -vexpress_fvp test.py: +xilinx_mbv32 test.py: variables: - TEST_PY_BD: "vexpress_fvp" - TEST_PY_TEST_SPEC: "not sleep and not hostfs" - tags: - - ${DEFAULT_AMD64_TAG} + TEST_PY_BD: "xilinx_mbv32" + TEST_PY_TEST_SPEC: "not sleep" + TEST_PY_ID: "--id qemu" <<: *buildman_and_testpy_dfn -vexpress_fvp_bloblist test.py: +xilinx_mbv32_smode test.py: variables: - TEST_PY_BD: "vexpress_fvp_bloblist" - TEST_PY_TEST_SPEC: "not sleep and not hostfs" - tags: - - ${DEFAULT_AMD64_TAG} + TEST_PY_BD: "xilinx_mbv32_smode" + TEST_PY_TEST_SPEC: "not sleep" + TEST_PY_ID: "--id qemu" + <<: *buildman_and_testpy_dfn + +xilinx_mbv64 test.py: + variables: + TEST_PY_BD: "xilinx_mbv64" + TEST_PY_TEST_SPEC: "not sleep" + TEST_PY_ID: "--id qemu" + <<: *buildman_and_testpy_dfn + +xilinx_mbv64_smode test.py: + variables: + TEST_PY_BD: "xilinx_mbv64_smode" + TEST_PY_TEST_SPEC: "not sleep" + TEST_PY_ID: "--id qemu" <<: *buildman_and_testpy_dfn xilinx_zynq_virt test.py: @@ -581,7 +588,7 @@ coreboot test.py: TEST_PY_ID: "--id qemu" <<: *buildman_and_testpy_dfn -.lab_template: &lab_dfn +.sjg_lab_template: &sjg_lab_dfn stage: sjg-lab rules: - if: $SJG_LAB == "1" @@ -590,6 +597,7 @@ coreboot test.py: when: manual allow_failure: true dependencies: [] + needs: [ "sandbox test.py" ] tags: [ 'lab' ] script: # Environment: @@ -627,131 +635,131 @@ coreboot test.py: rpi3: variables: ROLE: rpi3 - <<: *lab_dfn + <<: *sjg_lab_dfn opi_pc: variables: ROLE: opi_pc - <<: *lab_dfn + <<: *sjg_lab_dfn pcduino3_nano: variables: ROLE: pcduino3_nano - <<: *lab_dfn + <<: *sjg_lab_dfn samus: variables: ROLE: samus - <<: *lab_dfn + <<: *sjg_lab_dfn link: variables: ROLE: link - <<: *lab_dfn + <<: *sjg_lab_dfn jerry: variables: ROLE: jerry - <<: *lab_dfn + <<: *sjg_lab_dfn minnowmax: variables: ROLE: minnowmax - <<: *lab_dfn + <<: *sjg_lab_dfn opi_pc2: variables: ROLE: opi_pc2 - <<: *lab_dfn + <<: *sjg_lab_dfn bpi: variables: ROLE: bpi - <<: *lab_dfn + <<: *sjg_lab_dfn rpi2: variables: ROLE: rpi2 - <<: *lab_dfn + <<: *sjg_lab_dfn bob: variables: ROLE: bob - <<: *lab_dfn + <<: *sjg_lab_dfn ff3399: variables: ROLE: ff3399 - <<: *lab_dfn + <<: *sjg_lab_dfn coral: variables: ROLE: coral - <<: *lab_dfn + <<: *sjg_lab_dfn rpi3z: variables: ROLE: rpi3z - <<: *lab_dfn + <<: *sjg_lab_dfn bbb: variables: ROLE: bbb - <<: *lab_dfn + <<: *sjg_lab_dfn kevin: variables: ROLE: kevin - <<: *lab_dfn + <<: *sjg_lab_dfn pine64: variables: ROLE: pine64 - <<: *lab_dfn + <<: *sjg_lab_dfn c4: variables: ROLE: c4 - <<: *lab_dfn + <<: *sjg_lab_dfn rpi4: variables: ROLE: rpi4 - <<: *lab_dfn + <<: *sjg_lab_dfn rpi0: variables: ROLE: rpi0 - <<: *lab_dfn + <<: *sjg_lab_dfn snow: variables: ROLE: snow - <<: *lab_dfn + <<: *sjg_lab_dfn pcduino3: variables: ROLE: pcduino3 - <<: *lab_dfn + <<: *sjg_lab_dfn nyan-big: variables: ROLE: nyan-big - <<: *lab_dfn + <<: *sjg_lab_dfn rpi: variables: ROLE: rpi - <<: *lab_dfn + <<: *sjg_lab_dfn # StarFive VisionFive 2 vf2: variables: ROLE: vf2 - <<: *lab_dfn + <<: *sjg_lab_dfn qemu-x86_64: variables: ROLE: qemu-x86_64 TEST_PY_TEST_SPEC: "and not sleep" - <<: *lab_dfn + <<: *sjg_lab_dfn |
