1variables: 2 windows_vm: windows-2019 3 ubuntu_vm: ubuntu-22.04 4 macos_vm: macOS-12 5 ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20230308-04Apr2023 6 # Add '-u 0' options for Azure pipelines, otherwise we get "permission 7 # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer", 8 # since our $(ci_runner_image) user is not root. 9 container_option: -u 0 10 work_dir: /u 11 12stages: 13- stage: testsuites 14 jobs: 15 - job: tools_only_windows 16 displayName: 'Ensure host tools build for Windows' 17 pool: 18 vmImage: $(windows_vm) 19 steps: 20 - powershell: | 21 (New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2021-06-04/msys2-base-x86_64-20210604.sfx.exe", "sfx.exe") 22 displayName: 'Install MSYS2' 23 - script: | 24 sfx.exe -y -o%CD:~0,2%\ 25 %CD:~0,2%\msys64\usr\bin\bash -lc " " 26 %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syuu" 27 %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syuu" 28 displayName: 'Update MSYS2' 29 - script: | 30 %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -Sy make gcc bison flex diffutils openssl-devel libgnutls-devel libutil-linux-devel" 31 displayName: 'Install Toolchain' 32 - script: | 33 echo make tools-only_defconfig tools-only > build-tools.sh 34 %CD:~0,2%\msys64\usr\bin\bash -lc "bash build-tools.sh" 35 displayName: 'Build Host Tools' 36 env: 37 # Tell MSYS2 we need a POSIX emulation layer 38 MSYSTEM: MSYS 39 # Tell MSYS2 not to ‘cd’ our startup directory to HOME 40 CHERE_INVOKING: yes 41 42 - job: tools_only_macOS 43 displayName: 'Ensure host tools build for macOS X' 44 pool: 45 vmImage: $(macos_vm) 46 steps: 47 - script: brew install make ossp-uuid 48 displayName: Brew install dependencies 49 - script: | 50 gmake tools-only_config tools-only \ 51 HOSTCFLAGS="-I/usr/local/opt/openssl@1.1/include" \ 52 HOSTLDFLAGS="-L/usr/local/opt/openssl@1.1/lib" \ 53 -j$(sysctl -n hw.logicalcpu) 54 displayName: 'Perform tools-only build' 55 56 - job: check_for_new_CONFIG_symbols_outside_Kconfig 57 displayName: 'Check for new CONFIG symbols outside Kconfig' 58 pool: 59 vmImage: $(ubuntu_vm) 60 container: 61 image: $(ci_runner_image) 62 options: $(container_option) 63 steps: 64 # If grep succeeds and finds a match the test fails as we should 65 # have no matches. 66 - script: git grep -E '^#[[:blank:]]*(define|undef)[[:blank:]]*CONFIG_' 67 :^doc/ :^arch/arm/dts/ :^scripts/kconfig/lkc.h 68 :^include/linux/kconfig.h :^tools/ && exit 1 || exit 0 69 70 - job: cppcheck 71 displayName: 'Static code analysis with cppcheck' 72 pool: 73 vmImage: $(ubuntu_vm) 74 container: 75 image: $(ci_runner_image) 76 options: $(container_option) 77 steps: 78 - script: cppcheck -j$(nproc) --force --quiet --inline-suppr . 79 80 - job: docs 81 displayName: 'Build documentation' 82 pool: 83 vmImage: $(ubuntu_vm) 84 container: 85 image: $(ci_runner_image) 86 options: $(container_option) 87 steps: 88 - script: | 89 virtualenv -p /usr/bin/python3 /tmp/venvhtml 90 . /tmp/venvhtml/bin/activate 91 pip install -r doc/sphinx/requirements.txt 92 make htmldocs KDOC_WERROR=1 93 make infodocs 94 95 - job: todo 96 displayName: 'Search for TODO within source tree' 97 pool: 98 vmImage: $(ubuntu_vm) 99 container: 100 image: $(ci_runner_image) 101 options: $(container_option) 102 steps: 103 - script: grep -r TODO . 104 - script: grep -r FIXME . 105 - script: grep -r HACK . | grep -v HACKKIT 106 107 - job: sloccount 108 displayName: 'Some statistics about the code base' 109 pool: 110 vmImage: $(ubuntu_vm) 111 container: 112 image: $(ci_runner_image) 113 options: $(container_option) 114 steps: 115 - script: sloccount . 116 117 - job: maintainers 118 displayName: 'Ensure all configs have MAINTAINERS entries' 119 pool: 120 vmImage: $(ubuntu_vm) 121 container: 122 image: $(ci_runner_image) 123 options: $(container_option) 124 steps: 125 - script: | 126 ./tools/buildman/buildman -R 127 128 - job: tools_only 129 displayName: 'Ensure host tools build' 130 pool: 131 vmImage: $(ubuntu_vm) 132 container: 133 image: $(ci_runner_image) 134 options: $(container_option) 135 steps: 136 - script: | 137 make tools-only_config tools-only -j$(nproc) 138 139 - job: envtools 140 displayName: 'Ensure env tools build' 141 pool: 142 vmImage: $(ubuntu_vm) 143 container: 144 image: $(ci_runner_image) 145 options: $(container_option) 146 steps: 147 - script: | 148 make tools-only_config envtools -j$(nproc) 149 150 - job: utils 151 displayName: 'Run binman, buildman, dtoc, Kconfig and patman testsuites' 152 pool: 153 vmImage: $(ubuntu_vm) 154 steps: 155 - script: | 156 cat << "EOF" > build.sh 157 cd $(work_dir) 158 git config --global user.name "Azure Pipelines" 159 git config --global user.email bmeng.cn@gmail.com 160 git config --global --add safe.directory $(work_dir) 161 export USER=azure 162 virtualenv -p /usr/bin/python3 /tmp/venv 163 . /tmp/venv/bin/activate 164 pip install -r test/py/requirements.txt 165 export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl 166 export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt 167 export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH} 168 ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl 169 set -ex 170 ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test 171 ./tools/buildman/buildman -t 172 ./tools/dtoc/dtoc -t 173 ./tools/patman/patman test 174 make O=${UBOOT_TRAVIS_BUILD_DIR} testconfig 175 EOF 176 cat build.sh 177 # We cannot use "container" like other jobs above, as buildman 178 # seems to hang forever with pre-configured "container" environment 179 docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh 180 181 - job: nokia_rx51_test 182 displayName: 'Run tests for Nokia RX-51 (aka N900)' 183 pool: 184 vmImage: $(ubuntu_vm) 185 container: 186 image: $(ci_runner_image) 187 options: $(container_option) 188 steps: 189 - script: | 190 mkdir nokia_rx51_tmp 191 ln -s /opt/nokia/u-boot-gen-combined nokia_rx51_tmp/ 192 ln -s /opt/nokia/qemu-n900.tar.gz nokia_rx51_tmp/ 193 ln -s /opt/nokia/kernel_2.6.28-20103103+0m5_armel.deb nokia_rx51_tmp/ 194 ln -s /opt/nokia/libc6_2.5.1-1eglibc27+0m5_armel.deb nokia_rx51_tmp/ 195 ln -s /opt/nokia/busybox_1.10.2.legal-1osso30+0m5_armel.deb nokia_rx51_tmp/ 196 ln -s /opt/nokia/qemu-system-arm nokia_rx51_tmp/ 197 export PATH=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin:$PATH 198 test/nokia_rx51_test.sh 199 200 - job: pylint 201 displayName: Check for any pylint regressions 202 pool: 203 vmImage: $(ubuntu_vm) 204 container: 205 image: $(ci_runner_image) 206 options: $(container_option) 207 steps: 208 - script: | 209 git config --global --add safe.directory $(work_dir) 210 export USER=azure 211 pip install -r test/py/requirements.txt 212 pip install asteval pylint==2.12.2 pyopenssl 213 export PATH=${PATH}:~/.local/bin 214 echo "[MASTER]" >> .pylintrc 215 echo "load-plugins=pylint.extensions.docparams" >> .pylintrc 216 export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl 217 ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl 218 set -ex 219 pylint --version 220 export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt 221 make pylint_err 222 223 - job: check_for_pre_schema_tags 224 displayName: 'Check for pre-schema driver model tags' 225 pool: 226 vmImage: $(ubuntu_vm) 227 container: 228 image: $(ci_runner_image) 229 options: $(container_option) 230 steps: 231 # If grep succeeds and finds a match the test fails as we should 232 # have no matches. 233 - script: git grep u-boot,dm- -- '*.dts*' && exit 1 || exit 0 234 235 - job: check_packing_of_python_tools 236 displayName: 'Check we can package the Python tools' 237 pool: 238 vmImage: $(ubuntu_vm) 239 container: 240 image: $(ci_runner_image) 241 options: $(container_option) 242 steps: 243 - script: make pip 244 245- stage: test_py 246 jobs: 247 - job: test_py 248 displayName: 'test.py' 249 pool: 250 vmImage: $(ubuntu_vm) 251 strategy: 252 matrix: 253 sandbox: 254 TEST_PY_BD: "sandbox" 255 sandbox_clang: 256 TEST_PY_BD: "sandbox" 257 OVERRIDE: "-O clang-16" 258 sandbox_nolto: 259 TEST_PY_BD: "sandbox" 260 BUILD_ENV: "NO_LTO=1" 261 sandbox_spl: 262 TEST_PY_BD: "sandbox_spl" 263 TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl" 264 sandbox_vpl: 265 TEST_PY_BD: "sandbox_vpl" 266 TEST_PY_TEST_SPEC: "vpl or test_spl" 267 sandbox_noinst: 268 TEST_PY_BD: "sandbox_noinst" 269 TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl" 270 sandbox_flattree: 271 TEST_PY_BD: "sandbox_flattree" 272 sandbox_trace: 273 TEST_PY_BD: "sandbox" 274 BUILD_ENV: "FTRACE=1 NO_LTO=1" 275 TEST_PY_TEST_SPEC: "trace" 276 OVERRIDE: "-a CONFIG_TRACE=y -a CONFIG_TRACE_EARLY=y -a CONFIG_TRACE_EARLY_SIZE=0x01000000" 277 coreboot: 278 TEST_PY_BD: "coreboot" 279 TEST_PY_ID: "--id qemu" 280 TEST_PY_TEST_SPEC: "not sleep" 281 evb_ast2500: 282 TEST_PY_BD: "evb-ast2500" 283 TEST_PY_ID: "--id qemu" 284 evb_ast2600: 285 TEST_PY_BD: "evb-ast2600" 286 TEST_PY_ID: "--id qemu" 287 vexpress_ca9x4: 288 TEST_PY_BD: "vexpress_ca9x4" 289 TEST_PY_ID: "--id qemu" 290 integratorcp_cm926ejs: 291 TEST_PY_BD: "integratorcp_cm926ejs" 292 TEST_PY_ID: "--id qemu" 293 TEST_PY_TEST_SPEC: "not sleep" 294 qemu_arm: 295 TEST_PY_BD: "qemu_arm" 296 TEST_PY_TEST_SPEC: "not sleep" 297 qemu_arm64: 298 TEST_PY_BD: "qemu_arm64" 299 TEST_PY_TEST_SPEC: "not sleep" 300 qemu_m68k: 301 TEST_PY_BD: "M5208EVBE" 302 TEST_PY_ID: "--id qemu" 303 TEST_PY_TEST_SPEC: "not sleep and not efi" 304 OVERRIDE: "-a CONFIG_M68K_QEMU=y -a ~CONFIG_MCFTMR" 305 qemu_malta: 306 TEST_PY_BD: "malta" 307 TEST_PY_ID: "--id qemu" 308 TEST_PY_TEST_SPEC: "not sleep and not efi" 309 qemu_maltael: 310 TEST_PY_BD: "maltael" 311 TEST_PY_ID: "--id qemu" 312 TEST_PY_TEST_SPEC: "not sleep and not efi" 313 qemu_malta64: 314 TEST_PY_BD: "malta64" 315 TEST_PY_ID: "--id qemu" 316 TEST_PY_TEST_SPEC: "not sleep and not efi" 317 qemu_malta64el: 318 TEST_PY_BD: "malta64el" 319 TEST_PY_ID: "--id qemu" 320 TEST_PY_TEST_SPEC: "not sleep and not efi" 321 qemu_ppce500: 322 TEST_PY_BD: "qemu-ppce500" 323 TEST_PY_TEST_SPEC: "not sleep" 324 qemu_riscv32: 325 TEST_PY_BD: "qemu-riscv32" 326 TEST_PY_TEST_SPEC: "not sleep" 327 qemu_riscv64: 328 TEST_PY_BD: "qemu-riscv64" 329 TEST_PY_TEST_SPEC: "not sleep" 330 qemu_riscv32_spl: 331 TEST_PY_BD: "qemu-riscv32_spl" 332 TEST_PY_TEST_SPEC: "not sleep" 333 qemu_riscv64_spl: 334 TEST_PY_BD: "qemu-riscv64_spl" 335 TEST_PY_TEST_SPEC: "not sleep" 336 qemu_x86: 337 TEST_PY_BD: "qemu-x86" 338 TEST_PY_TEST_SPEC: "not sleep" 339 qemu_x86_64: 340 TEST_PY_BD: "qemu-x86_64" 341 TEST_PY_TEST_SPEC: "not sleep" 342 r2dplus_i82557c: 343 TEST_PY_BD: "r2dplus" 344 TEST_PY_ID: "--id i82557c_qemu" 345 r2dplus_pcnet: 346 TEST_PY_BD: "r2dplus" 347 TEST_PY_ID: "--id pcnet_qemu" 348 r2dplus_rtl8139: 349 TEST_PY_BD: "r2dplus" 350 TEST_PY_ID: "--id rtl8139_qemu" 351 r2dplus_tulip: 352 TEST_PY_BD: "r2dplus" 353 TEST_PY_ID: "--id tulip_qemu" 354 sifive_unleashed_sdcard: 355 TEST_PY_BD: "sifive_unleashed" 356 TEST_PY_ID: "--id sdcard_qemu" 357 sifive_unleashed_spi-nor: 358 TEST_PY_BD: "sifive_unleashed" 359 TEST_PY_ID: "--id spi-nor_qemu" 360 xilinx_zynq_virt: 361 TEST_PY_BD: "xilinx_zynq_virt" 362 TEST_PY_ID: "--id qemu" 363 TEST_PY_TEST_SPEC: "not sleep" 364 xilinx_versal_virt: 365 TEST_PY_BD: "xilinx_versal_virt" 366 TEST_PY_ID: "--id qemu" 367 TEST_PY_TEST_SPEC: "not sleep" 368 xtfpga: 369 TEST_PY_BD: "xtfpga" 370 TEST_PY_ID: "--id qemu" 371 TEST_PY_TEST_SPEC: "not sleep" 372 steps: 373 - script: | 374 cat << EOF > test.sh 375 set -ex 376 # make environment variables available as tests are running inside a container 377 export WORK_DIR="${WORK_DIR}" 378 export TEST_PY_BD="${TEST_PY_BD}" 379 export TEST_PY_ID="${TEST_PY_ID}" 380 export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" 381 export OVERRIDE="${OVERRIDE}" 382 export BUILD_ENV="${BUILD_ENV}" 383 EOF 384 cat << "EOF" >> test.sh 385 # the below corresponds to .gitlab-ci.yml "before_script" 386 cd ${WORK_DIR} 387 git config --global --add safe.directory ${WORK_DIR} 388 git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks 389 ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname` 390 ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname` 391 grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd 392 grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd 393 if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then 394 wget -O - https://github.com/riscv/opensbi/releases/download/v0.9/opensbi-0.9-rv-bin.tar.xz | tar -C /tmp -xJ; 395 export OPENSBI=/tmp/opensbi-0.9-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin; 396 fi 397 if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then 398 wget -O - https://github.com/riscv/opensbi/releases/download/v0.9/opensbi-0.9-rv-bin.tar.xz | tar -C /tmp -xJ; 399 export OPENSBI=/tmp/opensbi-0.9-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin; 400 fi 401 # the below corresponds to .gitlab-ci.yml "script" 402 cd ${WORK_DIR} 403 export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}; 404 if [ -n "${BUILD_ENV}" ]; then 405 export ${BUILD_ENV}; 406 fi 407 tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board ${TEST_PY_BD} ${OVERRIDE} 408 cp ~/grub_x86.efi ${UBOOT_TRAVIS_BUILD_DIR}/ 409 cp ~/grub_x64.efi ${UBOOT_TRAVIS_BUILD_DIR}/ 410 cp /opt/grub/grubriscv64.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_riscv64.efi 411 cp /opt/grub/grubaa64.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_arm64.efi 412 cp /opt/grub/grubarm.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_arm.efi 413 # create sdcard / spi-nor images for sifive unleashed using genimage 414 if [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then 415 mkdir -p root; 416 cp ${UBOOT_TRAVIS_BUILD_DIR}/spl/u-boot-spl.bin .; 417 cp ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.itb .; 418 rm -rf tmp; 419 genimage --inputpath . --config board/sifive/unleashed/genimage_sdcard.cfg; 420 cp images/sdcard.img ${UBOOT_TRAVIS_BUILD_DIR}/; 421 rm -rf tmp; 422 genimage --inputpath . --config board/sifive/unleashed/genimage_spi-nor.cfg; 423 cp images/spi-nor.img ${UBOOT_TRAVIS_BUILD_DIR}/; 424 fi 425 if [[ "${TEST_PY_BD}" == "coreboot" ]]; then 426 wget -O - "https://drive.google.com/uc?id=1x6nrtWIyIRPLS2cQBwYTnT2TbOI8UjmM&export=download" |xz -dc >${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom; 427 wget -O - "https://drive.google.com/uc?id=149Cz-5SZXHNKpi9xg6R_5XITWohu348y&export=download" >cbfstool; 428 chmod a+x cbfstool; 429 ./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; 430 fi 431 virtualenv -p /usr/bin/python3 /tmp/venv 432 . /tmp/venv/bin/activate 433 pip install -r test/py/requirements.txt 434 pip install pytest-azurepipelines 435 export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; 436 export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; 437 # "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not 438 ./test/py/test.py -ra -o cache_dir="$UBOOT_TRAVIS_BUILD_DIR"/.pytest_cache --bd ${TEST_PY_BD} ${TEST_PY_ID} ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} --build-dir "$UBOOT_TRAVIS_BUILD_DIR" --report-dir "$UBOOT_TRAVIS_BUILD_DIR"; 439 # the below corresponds to .gitlab-ci.yml "after_script" 440 rm -rf /tmp/uboot-test-hooks /tmp/venv 441 EOF 442 cat test.sh 443 # make current directory writeable to uboot user inside the container 444 # as sandbox testing need create files like spi flash images, etc. 445 # (TODO: clean up this in the future) 446 chmod 777 . 447 # Filesystem tests need extra docker args to run 448 set -- 449 if [[ "${TEST_PY_BD}" == "sandbox" ]]; then 450 # mount -o loop needs the loop devices 451 if modprobe loop; then 452 for d in $(find /dev -maxdepth 1 -name 'loop*'); do 453 set -- "$@" --device $d:$d 454 done 455 fi 456 # Needed for mount syscall (for guestmount as well) 457 set -- "$@" --cap-add SYS_ADMIN 458 # Default apparmor profile denies mounts 459 set -- "$@" --security-opt apparmor=unconfined 460 fi 461 # Some tests using libguestfs-tools need the fuse device to run 462 docker run "$@" --device /dev/fuse:/dev/fuse -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/test.sh 463 464- stage: world_build 465 jobs: 466 - job: build_the_world 467 displayName: 'Build the World' 468 pool: 469 vmImage: $(ubuntu_vm) 470 strategy: 471 # Use almost the same target division in .travis.yml, only merged 472 # 3 small build jobs (arc/microblaze/xtensa) into one. 473 matrix: 474 arc_microblaze_xtensa: 475 BUILDMAN: "arc microblaze xtensa" 476 amlogic: 477 BUILDMAN: "amlogic" 478 arm11_arm7_arm920t_arm946es: 479 BUILDMAN: "arm11 arm7 arm920t arm946es" 480 arm926ejs: 481 BUILDMAN: "arm926ejs -x freescale,siemens,at91,kirkwood,omap" 482 at91_non_armv7: 483 BUILDMAN: "at91 -x armv7" 484 at91_non_arm926ejs: 485 BUILDMAN: "at91 -x arm926ejs" 486 boundary_engicam_toradex: 487 BUILDMAN: "boundary engicam toradex" 488 arm_bcm: 489 BUILDMAN: "bcm -x mips" 490 nxp_arm32: 491 BUILDMAN: "freescale -x powerpc,m68k,aarch64,ls101,ls102,ls104,ls108,ls20,lx216" 492 nxp_ls101x: 493 BUILDMAN: "freescale&ls101" 494 nxp_ls102x: 495 BUILDMAN: "freescale&ls102 -x keymile" 496 nxp_ls104x: 497 BUILDMAN: "freescale&ls104" 498 nxp_ls108x: 499 BUILDMAN: "freescale&ls108" 500 nxp_ls20xx: 501 BUILDMAN: "freescale&ls20" 502 nxp_lx216x: 503 BUILDMAN: "freescale&lx216" 504 imx6: 505 BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex" 506 imx: 507 BUILDMAN: "mx -x mx6,imx8,freescale,technexion,toradex" 508 imx8_imx9: 509 BUILDMAN: "imx8 imx9" 510 keymile: 511 BUILDMAN: "keymile" 512 keystone2_keystone3: 513 BUILDMAN: "k2 k3" 514 sandbox_asan: 515 BUILDMAN: "sandbox" 516 OVERRIDE: "-a ASAN" 517 sandbox_clang_asan: 518 BUILDMAN: "sandbox" 519 OVERRIDE: "-O clang-16 -a ASAN" 520 samsung_socfpga: 521 BUILDMAN: "samsung socfpga" 522 sun4i: 523 BUILDMAN: "sun4i" 524 sun5i: 525 BUILDMAN: "sun5i" 526 sun6i: 527 BUILDMAN: "sun6i" 528 sun7i: 529 BUILDMAN: "sun7i" 530 sun8i_32bit: 531 BUILDMAN: "sun8i&armv7" 532 sun8i_64bit: 533 BUILDMAN: "sun8i&aarch64" 534 sun9i: 535 BUILDMAN: "sun9i" 536 sun50i: 537 BUILDMAN: "sun50i" 538 arm_catch_all: 539 BUILDMAN: "arm -x arm11,arm7,arm9,aarch64,at91,bcm,freescale,kirkwood,mvebu,renesas,siemens,tegra,uniphier,mx,samsung,sunxi,am33xx,omap,rk,toradex,socfpga,k2,k3,zynq" 540 sandbox_x86: 541 BUILDMAN: "sandbox x86" 542 technexion: 543 BUILDMAN: "technexion" 544 kirkwood: 545 BUILDMAN: "kirkwood" 546 mvebu: 547 BUILDMAN: "mvebu" 548 m68k: 549 BUILDMAN: "m68k" 550 mips: 551 BUILDMAN: "mips" 552 powerpc: 553 BUILDMAN: "powerpc -x keymile" 554 siemens: 555 BUILDMAN: "siemens" 556 tegra: 557 BUILDMAN: "tegra -x toradex" 558 am33xx_no_siemens: 559 BUILDMAN: "am33xx -x siemens" 560 omap: 561 BUILDMAN: "omap" 562 uniphier: 563 BUILDMAN: "uniphier" 564 aarch64_catch_all: 565 BUILDMAN: "aarch64 -x amlogic,bcm,imx8,imx9,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq" 566 rockchip_32bit: 567 BUILDMAN: "rk -x aarch64" 568 rockchip_64bit: 569 BUILDMAN: "rk&aarch64" 570 renesas: 571 BUILDMAN: "renesas" 572 zynq: 573 BUILDMAN: "zynq&armv7" 574 zynqmp_versal: 575 BUILDMAN: "versal|zynqmp&aarch64" 576 riscv: 577 BUILDMAN: "riscv" 578 steps: 579 - script: | 580 cat << EOF > build.sh 581 set -ex 582 cd ${WORK_DIR} 583 # make environment variables available as tests are running inside a container 584 export BUILDMAN="${BUILDMAN}" 585 git config --global --add safe.directory ${WORK_DIR} 586 EOF 587 cat << "EOF" >> build.sh 588 if [[ "${BUILDMAN}" != "" ]]; then 589 ret=0; 590 tools/buildman/buildman -o /tmp -PEWM ${BUILDMAN} ${OVERRIDE} || ret=$?; 591 if [[ $ret -ne 0 ]]; then 592 tools/buildman/buildman -o /tmp -seP ${BUILDMAN}; 593 exit $ret; 594 fi; 595 fi 596 EOF 597 cat build.sh 598 docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh 599