summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml144
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