diff options
author | Tom Rini <trini@konsulko.com> | 2022-08-03 12:31:40 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-08-03 12:31:40 -0400 |
commit | f5d12aac8b8ffa0cf19927a37747249e401c9eae (patch) | |
tree | 27f7e19006c3beb66eac6b37f43f64bbd1efce51 | |
parent | 96118eb055eab3d9c3ed9ec74f5a15f3fdbba8e4 (diff) | |
download | u-boot-WIP/remove-non-migrated-gpio.zip u-boot-WIP/remove-non-migrated-gpio.tar.gz u-boot-WIP/remove-non-migrated-gpio.tar.bz2 |
HACK: World build onlyWIP/remove-non-migrated-gpio
Signed-off-by: Tom Rini <trini@konsulko.com>
-rw-r--r-- | .azure-pipelines.yml | 572 | ||||
-rw-r--r-- | .gitlab-ci.yml | 396 |
2 files changed, 0 insertions, 968 deletions
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml deleted file mode 100644 index bc2b437..0000000 --- a/.azure-pipelines.yml +++ /dev/null @@ -1,572 +0,0 @@ -variables: - windows_vm: windows-2019 - ubuntu_vm: ubuntu-18.04 - macos_vm: macOS-10.15 - ci_runner_image: trini/u-boot-gitlab-ci-runner:focal-20220302-15Mar2022 - # Add '-u 0' options for Azure pipelines, otherwise we get "permission - # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer", - # since our $(ci_runner_image) user is not root. - container_option: -u 0 - work_dir: /u - -stages: -- stage: testsuites - jobs: - - job: tools_only_windows - displayName: 'Ensure host tools build for Windows' - pool: - vmImage: $(windows_vm) - steps: - - powershell: | - (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") - displayName: 'Install MSYS2' - - script: | - sfx.exe -y -o%CD:~0,2%\ - %CD:~0,2%\msys64\usr\bin\bash -lc " " - %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syuu" - %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Syuu" - displayName: 'Update MSYS2' - - script: | - %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -Sy make gcc bison flex diffutils openssl-devel libgnutls-devel libutil-linux-devel" - displayName: 'Install Toolchain' - - script: | - echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh - %CD:~0,2%\msys64\usr\bin\bash -lc "bash build-tools.sh" - displayName: 'Build Host Tools' - env: - # Tell MSYS2 we need a POSIX emulation layer - MSYSTEM: MSYS - # Tell MSYS2 not to ‘cd’ our startup directory to HOME - CHERE_INVOKING: yes - - - job: tools_only_macOS - displayName: 'Ensure host tools build for macOS X' - pool: - vmImage: $(macos_vm) - steps: - - script: brew install make ossp-uuid - displayName: Brew install dependencies - - script: | - gmake tools-only_config tools-only NO_SDL=1 \ - HOSTCFLAGS="-I/usr/local/opt/openssl@1.1/include" \ - HOSTLDFLAGS="-L/usr/local/opt/openssl@1.1/lib" \ - -j$(sysctl -n hw.logicalcpu) - displayName: 'Perform tools-only build' - - - job: check_for_migrated_symbols_in_board_header - displayName: 'Check for migrated symbols in board header' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - KSYMLST=`mktemp` - KUSEDLST=`mktemp` - RET=0 - cat `find . -name "Kconfig*"` | \ - sed -n -e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \ - -e 's/^\s*menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \ - | sort -u > $KSYMLST - for CFG in `find include/configs -name "*.h"`; do - (grep '#define[[:blank:]]CONFIG_' $CFG | \ - sed -n 's/#define.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' ; \ - grep '#undef[[:blank:]]CONFIG_' $CFG | \ - sed -n 's/#undef.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p') | \ - sort -u > ${KUSEDLST} || true - NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | \ - cut -d , -f 3` - if [[ $NUM -ne 0 ]]; then - echo "Unmigrated symbols found in $CFG:" - comm -12 ${KSYMLST} ${KUSEDLST} - RET=1 - fi - done - exit $RET - - - job: cppcheck - displayName: 'Static code analysis with cppcheck' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: cppcheck -j$(nproc) --force --quiet --inline-suppr . - - - job: htmldocs - displayName: 'Build HTML documentation' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - virtualenv -p /usr/bin/python3 /tmp/venvhtml - . /tmp/venvhtml/bin/activate - pip install -r doc/sphinx/requirements.txt - make htmldocs - - - job: todo - displayName: 'Search for TODO within source tree' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: grep -r TODO . - - script: grep -r FIXME . - - script: grep -r HACK . | grep -v HACKKIT - - - job: sloccount - displayName: 'Some statistics about the code base' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: sloccount . - - - job: maintainers - displayName: 'Ensure all configs have MAINTAINERS entries' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi - - - job: tools_only - displayName: 'Ensure host tools build' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - make tools-only_config tools-only -j$(nproc) - - - job: envtools - displayName: 'Ensure env tools build' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - make tools-only_config envtools -j$(nproc) - - - job: utils - displayName: 'Run binman, buildman, dtoc, Kconfig and patman testsuites' - pool: - vmImage: $(ubuntu_vm) - steps: - - script: | - cat << EOF > build.sh - set -ex - cd ${WORK_DIR} - EOF - cat << "EOF" >> build.sh - git config --global user.name "Azure Pipelines" - git config --global user.email bmeng.cn@gmail.com - export USER=azure - virtualenv -p /usr/bin/python3 /tmp/venv - . /tmp/venv/bin/activate - pip install -r test/py/requirements.txt - export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl - export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt - export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH} - ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl - ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test - ./tools/buildman/buildman -t - ./tools/dtoc/dtoc -t - ./tools/patman/patman test - make O=${UBOOT_TRAVIS_BUILD_DIR} testconfig - EOF - cat build.sh - # We cannot use "container" like other jobs above, as buildman - # seems to hang forever with pre-configured "container" environment - docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh - - - job: nokia_rx51_test - displayName: 'Run tests for Nokia RX-51 (aka N900)' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH - test/nokia_rx51_test.sh - - - job: pylint - displayName: Check for any pylint regressions - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - cd ${WORK_DIR} - export USER=azure - pip install -r test/py/requirements.txt - pip install asteval pylint==2.12.2 pyopenssl - export PATH=${PATH}:~/.local/bin - echo "[MASTER]" >> .pylintrc - echo "load-plugins=pylint.extensions.docparams" >> .pylintrc - export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl - ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl - pylint --version - export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt - make pylint_err - -- stage: test_py - jobs: - - job: test_py - displayName: 'test.py' - pool: - vmImage: $(ubuntu_vm) - strategy: - matrix: - sandbox: - TEST_PY_BD: "sandbox" - sandbox_clang: - TEST_PY_BD: "sandbox" - OVERRIDE: "-O clang-13" - sandbox_spl: - TEST_PY_BD: "sandbox_spl" - TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl" - sandbox_vpl: - TEST_PY_BD: "sandbox_vpl" - TEST_PY_TEST_SPEC: "test_vpl_help or test_spl" - sandbox_noinst: - TEST_PY_BD: "sandbox_noinst" - TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl" - sandbox_flattree: - TEST_PY_BD: "sandbox_flattree" - coreboot: - TEST_PY_BD: "coreboot" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep" - evb_ast2500: - TEST_PY_BD: "evb-ast2500" - TEST_PY_ID: "--id qemu" - evb_ast2600: - TEST_PY_BD: "evb-ast2600" - TEST_PY_ID: "--id qemu" - vexpress_ca9x4: - TEST_PY_BD: "vexpress_ca9x4" - TEST_PY_ID: "--id qemu" - integratorcp_cm926ejs: - TEST_PY_BD: "integratorcp_cm926ejs" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep" - qemu_arm: - TEST_PY_BD: "qemu_arm" - TEST_PY_TEST_SPEC: "not sleep" - qemu_arm64: - TEST_PY_BD: "qemu_arm64" - TEST_PY_TEST_SPEC: "not sleep" - qemu_malta: - TEST_PY_BD: "malta" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep and not efi" - qemu_maltael: - TEST_PY_BD: "maltael" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep and not efi" - qemu_malta64: - TEST_PY_BD: "malta64" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep and not efi" - qemu_malta64el: - TEST_PY_BD: "malta64el" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep and not efi" - qemu_ppce500: - TEST_PY_BD: "qemu-ppce500" - TEST_PY_TEST_SPEC: "not sleep" - qemu_riscv32: - TEST_PY_BD: "qemu-riscv32" - TEST_PY_TEST_SPEC: "not sleep" - qemu_riscv64: - TEST_PY_BD: "qemu-riscv64" - TEST_PY_TEST_SPEC: "not sleep" - qemu_riscv32_spl: - TEST_PY_BD: "qemu-riscv32_spl" - TEST_PY_TEST_SPEC: "not sleep" - qemu_riscv64_spl: - TEST_PY_BD: "qemu-riscv64_spl" - TEST_PY_TEST_SPEC: "not sleep" - qemu_x86: - TEST_PY_BD: "qemu-x86" - TEST_PY_TEST_SPEC: "not sleep" - qemu_x86_64: - TEST_PY_BD: "qemu-x86_64" - TEST_PY_TEST_SPEC: "not sleep" - r2dplus_i82557c: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id i82557c_qemu" - r2dplus_pcnet: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id pcnet_qemu" - r2dplus_rtl8139: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id rtl8139_qemu" - r2dplus_tulip: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id tulip_qemu" - sifive_unleashed_sdcard: - TEST_PY_BD: "sifive_unleashed" - TEST_PY_ID: "--id sdcard_qemu" - sifive_unleashed_spi-nor: - TEST_PY_BD: "sifive_unleashed" - TEST_PY_ID: "--id spi-nor_qemu" - xilinx_zynq_virt: - TEST_PY_BD: "xilinx_zynq_virt" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep" - xilinx_versal_virt: - TEST_PY_BD: "xilinx_versal_virt" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep" - xtfpga: - TEST_PY_BD: "xtfpga" - TEST_PY_ID: "--id qemu" - TEST_PY_TEST_SPEC: "not sleep" - steps: - - script: | - cat << EOF > test.sh - set -ex - # make environment variables available as tests are running inside a container - export WORK_DIR="${WORK_DIR}" - export TEST_PY_BD="${TEST_PY_BD}" - export TEST_PY_ID="${TEST_PY_ID}" - export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" - export OVERRIDE="${OVERRIDE}" - EOF - cat << "EOF" >> test.sh - # the below corresponds to .gitlab-ci.yml "before_script" - cd ${WORK_DIR} - git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks - ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname` - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname` - grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then - wget -O - https://github.com/riscv/opensbi/releases/download/v0.9/opensbi-0.9-rv-bin.tar.xz | tar -C /tmp -xJ; - export OPENSBI=/tmp/opensbi-0.9-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin; - fi - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then - wget -O - https://github.com/riscv/opensbi/releases/download/v0.9/opensbi-0.9-rv-bin.tar.xz | tar -C /tmp -xJ; - export OPENSBI=/tmp/opensbi-0.9-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin; - fi - # the below corresponds to .gitlab-ci.yml "script" - cd ${WORK_DIR} - export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}; - tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board ${TEST_PY_BD} ${OVERRIDE} - cp ~/grub_x86.efi ${UBOOT_TRAVIS_BUILD_DIR}/ - cp ~/grub_x64.efi ${UBOOT_TRAVIS_BUILD_DIR}/ - cp /opt/grub/grubriscv64.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_riscv64.efi - cp /opt/grub/grubaa64.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_arm64.efi - cp /opt/grub/grubarm.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_arm.efi - # create sdcard / spi-nor images for sifive unleashed using genimage - if [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then - mkdir -p root; - cp ${UBOOT_TRAVIS_BUILD_DIR}/spl/u-boot-spl.bin .; - cp ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.itb .; - rm -rf tmp; - genimage --inputpath . --config board/sifive/unleashed/genimage_sdcard.cfg; - cp images/sdcard.img ${UBOOT_TRAVIS_BUILD_DIR}/; - rm -rf tmp; - genimage --inputpath . --config board/sifive/unleashed/genimage_spi-nor.cfg; - cp images/spi-nor.img ${UBOOT_TRAVIS_BUILD_DIR}/; - fi - if [[ "${TEST_PY_BD}" == "coreboot" ]]; then - wget -O - "https://drive.google.com/uc?id=1x6nrtWIyIRPLS2cQBwYTnT2TbOI8UjmM&export=download" |xz -dc >${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom; - wget -O - "https://drive.google.com/uc?id=149Cz-5SZXHNKpi9xg6R_5XITWohu348y&export=download" >cbfstool; - chmod a+x cbfstool; - ./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 - virtualenv -p /usr/bin/python3 /tmp/venv - . /tmp/venv/bin/activate - pip install -r test/py/requirements.txt - export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; - export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; - # "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not - ./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID} ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} --build-dir "$UBOOT_TRAVIS_BUILD_DIR"; - # the below corresponds to .gitlab-ci.yml "after_script" - rm -rf /tmp/uboot-test-hooks /tmp/venv - EOF - cat test.sh - # 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 . - # 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) $(ci_runner_image) /bin/bash $(work_dir)/test.sh - -- stage: world_build - jobs: - - job: build_the_world - displayName: 'Build the World' - pool: - vmImage: $(ubuntu_vm) - strategy: - # Use almost the same target division in .travis.yml, only merged - # 3 small build jobs (arc/microblaze/xtensa) into one. - matrix: - arc_microblaze_xtensa: - BUILDMAN: "arc microblaze xtensa" - arm11_arm7_arm920t_arm946es: - BUILDMAN: "arm11 arm7 arm920t arm946es" - arm926ejs: - BUILDMAN: "arm926ejs -x freescale,siemens,at91,kirkwood,omap" - at91_non_armv7: - BUILDMAN: "at91 -x armv7" - at91_non_arm926ejs: - BUILDMAN: "at91 -x arm926ejs" - boundary_engicam_toradex: - BUILDMAN: "boundary engicam toradex" - arm_bcm: - BUILDMAN: "bcm -x mips" - nxp_arm32: - BUILDMAN: "freescale -x powerpc,m68k,aarch64,ls101,ls102,ls104,ls108,ls20,lx216" - nxp_ls101x: - BUILDMAN: "freescale&ls101" - nxp_ls102x: - BUILDMAN: "freescale&ls102" - nxp_ls104x: - BUILDMAN: "freescale&ls104" - nxp_ls108x: - BUILDMAN: "freescale&ls108" - nxp_ls20xx: - BUILDMAN: "freescale&ls20" - nxp_lx216x: - BUILDMAN: "freescale&lx216" - imx6: - BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex" - imx: - BUILDMAN: "mx -x mx6,freescale,technexion,toradex" - imx8: - BUILDMAN: "imx8" - keystone2_keystone3: - BUILDMAN: "k2 k3" - sandbox_asan: - BUILDMAN: "sandbox" - OVERRIDE: "-a ASAN" - sandbox_clang_asan: - BUILDMAN: "sandbox" - OVERRIDE: "-O clang-13 -a ASAN" - samsung_socfpga: - BUILDMAN: "samsung socfpga" - sun4i: - BUILDMAN: "sun4i" - sun5i: - BUILDMAN: "sun5i" - sun6i: - BUILDMAN: "sun6i" - sun7i: - BUILDMAN: "sun7i" - sun8i_32bit: - BUILDMAN: "sun8i&armv7" - sun8i_64bit: - BUILDMAN: "sun8i&aarch64" - sun9i: - BUILDMAN: "sun9i" - sun50i: - BUILDMAN: "sun50i" - arm_catch_all: - 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" - sandbox_x86: - BUILDMAN: "sandbox x86" - technexion: - BUILDMAN: "technexion" - kirkwood: - BUILDMAN: "kirkwood" - mvebu: - BUILDMAN: "mvebu" - m68k: - BUILDMAN: "m68k" - mips: - BUILDMAN: "mips" - non_fsl_ppc: - BUILDMAN: "powerpc -x freescale" - mpc85xx_freescale: - BUILDMAN: "mpc85xx&freescale -x t208xrdb -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x bsc91*" - t208xrdb_corenet_ds: - BUILDMAN: "t208xrdb corenet_ds" - fsl_ppc: - BUILDMAN: "mpc83xx&freescale" - t102x: - BUILDMAN: "t102*" - p1_p2_rdb_pc: - BUILDMAN: "p1_p2_rdb_pc" - p1010rdb_bsc91: - BUILDMAN: "p1010rdb bsc91" - siemens: - BUILDMAN: "siemens" - tegra: - BUILDMAN: "tegra -x toradex" - am33xx_no_siemens: - BUILDMAN: "am33xx -x siemens" - omap: - BUILDMAN: "omap" - uniphier: - BUILDMAN: "uniphier" - aarch64_catch_all: - BUILDMAN: "aarch64 -x bcm,imx8,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq" - rockchip: - BUILDMAN: "rk" - renesas: - BUILDMAN: "renesas" - zynq: - BUILDMAN: "zynq&armv7" - zynqmp_versal: - BUILDMAN: "versal|zynqmp&aarch64" - riscv: - BUILDMAN: "riscv" - steps: - - script: | - cat << EOF > build.sh - set -ex - cd ${WORK_DIR} - # make environment variables available as tests are running inside a container - export BUILDMAN="${BUILDMAN}" - EOF - cat << "EOF" >> build.sh - if [[ "${BUILDMAN}" != "" ]]; then - ret=0; - tools/buildman/buildman -o /tmp -P -E -W ${BUILDMAN} ${OVERRIDE} || ret=$?; - if [[ $ret -ne 0 ]]; then - tools/buildman/buildman -o /tmp -seP ${BUILDMAN}; - exit $ret; - fi; - fi - EOF - cat build.sh - docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f9cd417..6d9ee6b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,76 +6,8 @@ image: trini/u-boot-gitlab-ci-runner:focal-20220302-15Mar2022 # We run some tests in different order, to catch some failures quicker. stages: - - testsuites - - test.py - world build -.buildman_and_testpy_template: &buildman_and_testpy_dfn - stage: test.py - before_script: - # Clone uboot-test-hooks - - git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks - - ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname` - - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname` - - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then - wget -O - https://github.com/riscv/opensbi/releases/download/v0.9/opensbi-0.9-rv-bin.tar.xz | tar -C /tmp -xJ; - export OPENSBI=/tmp/opensbi-0.9-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin; - fi - - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then - wget -O - https://github.com/riscv/opensbi/releases/download/v0.9/opensbi-0.9-rv-bin.tar.xz | tar -C /tmp -xJ; - export OPENSBI=/tmp/opensbi-0.9-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin; - fi - - after_script: - - rm -rf /tmp/uboot-test-hooks /tmp/venv - script: - # If we've been asked to use clang only do one configuration. - - export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD} - - tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e - --board ${TEST_PY_BD} ${OVERRIDE} - - cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/ - - cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/ - - cp /opt/grub/grubriscv64.efi $UBOOT_TRAVIS_BUILD_DIR/grub_riscv64.efi - - cp /opt/grub/grubaa64.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm64.efi - - cp /opt/grub/grubarm.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm.efi - # create sdcard / spi-nor images for sifive unleashed using genimage - - if [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then - mkdir -p root; - cp ${UBOOT_TRAVIS_BUILD_DIR}/spl/u-boot-spl.bin .; - cp ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.itb .; - rm -rf tmp; - genimage --inputpath . --config board/sifive/unleashed/genimage_sdcard.cfg; - cp images/sdcard.img ${UBOOT_TRAVIS_BUILD_DIR}/; - rm -rf tmp; - genimage --inputpath . --config board/sifive/unleashed/genimage_spi-nor.cfg; - cp images/spi-nor.img ${UBOOT_TRAVIS_BUILD_DIR}/; - fi - - if [[ "${TEST_PY_BD}" == "coreboot" ]]; then - wget -O - - "https://drive.google.com/uc?id=1x6nrtWIyIRPLS2cQBwYTnT2TbOI8UjmM&export=download" | - xz -dc >${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom; - wget -O - - "https://drive.google.com/uc?id=149Cz-5SZXHNKpi9xg6R_5XITWohu348y&export=download" > - cbfstool; - chmod a+x cbfstool; - ./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 - - virtualenv -p /usr/bin/python3 /tmp/venv - - . /tmp/venv/bin/activate - - pip install -r test/py/requirements.txt - # "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not - - export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; - export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; - ./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID} - ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} - --build-dir "$UBOOT_TRAVIS_BUILD_DIR" - # It seems that the files in /tmp go away, so copy out what we need - - if [[ "${TEST_PY_BD}" == "coreboot" ]]; then - cp -v /tmp/coreboot/*.{html,css} .; - fi - build all 32bit ARM platforms: stage: world build script: @@ -118,331 +50,3 @@ build all other platforms: ./tools/buildman/buildman -o /tmp -seP; exit $ret; fi; - -check for migrated symbols in board header: - stage: testsuites - script: - - KSYMLST=`mktemp`; - KUSEDLST=`mktemp`; - RET=0; - cat `find . -name "Kconfig*"` | - sed -n -e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' - -e 's/^\s*menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' - | sort -u > $KSYMLST; - for CFG in `find include/configs -name "*.h"`; do - (grep '#define[[:blank:]]CONFIG_' $CFG | - sed -n 's/#define.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' ; - grep '#undef[[:blank:]]CONFIG_' $CFG | - sed -n 's/#undef.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p') | - sort -u > ${KUSEDLST} || true; - NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | - cut -d , -f 3`; - if [[ $NUM -ne 0 ]]; then - echo "Unmigrated symbols found in $CFG:"; - comm -12 ${KSYMLST} ${KUSEDLST}; - RET=1; - fi; - done; - exit $RET - -# QA jobs for code analytics -# static code analysis with cppcheck (we can add --enable=all later) -cppcheck: - stage: testsuites - script: - - cppcheck -j$(nproc) --force --quiet --inline-suppr . - -# search for TODO within source tree -grep TODO/FIXME/HACK: - stage: testsuites - script: - - grep -r TODO . - - grep -r FIXME . - # search for HACK within source tree and ignore HACKKIT board - - grep -r HACK . | grep -v HACKKIT - -# build HTML documentation -htmldocs: - stage: testsuites - script: - - virtualenv -p /usr/bin/python3 /tmp/venvhtml - - . /tmp/venvhtml/bin/activate - - pip install -r doc/sphinx/requirements.txt - - make htmldocs - -# some statistics about the code base -sloccount: - stage: testsuites - script: - - sloccount . - -# ensure all configs have MAINTAINERS entries -Check for configs without MAINTAINERS entry: - stage: testsuites - script: - - if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi - -# Ensure host tools build -Build tools-only: - stage: testsuites - script: - - make tools-only_config tools-only -j$(nproc) - -# Ensure env tools build -Build envtools: - stage: testsuites - script: - - make tools-only_config envtools -j$(nproc) - -Run binman, buildman, dtoc, Kconfig and patman testsuites: - stage: testsuites - script: - - git config --global user.name "GitLab CI Runner"; - git config --global user.email trini@konsulko.com; - export USER=gitlab; - virtualenv -p /usr/bin/python3 /tmp/venv; - . /tmp/venv/bin/activate; - pip install -r test/py/requirements.txt; - export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl; - export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; - export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; - ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w - --board sandbox_spl; - ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test; - ./tools/buildman/buildman -t; - ./tools/dtoc/dtoc -t; - ./tools/patman/patman test; - make testconfig - -Run tests for Nokia RX-51 (aka N900): - stage: testsuites - script: - - export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH; - test/nokia_rx51_test.sh - -# Check for any pylint regressions -Run pylint: - stage: testsuites - script: - - pip install -r test/py/requirements.txt - - pip install asteval pylint==2.12.2 pyopenssl - - export PATH=${PATH}:~/.local/bin - - echo "[MASTER]" >> .pylintrc - - echo "load-plugins=pylint.extensions.docparams" >> .pylintrc - - export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl - - ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w - --board sandbox_spl - - pylint --version - - export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt" - - make pylint_err - -# Test sandbox with test.py -sandbox test.py: - variables: - TEST_PY_BD: "sandbox" - <<: *buildman_and_testpy_dfn - -sandbox with clang test.py: - variables: - TEST_PY_BD: "sandbox" - OVERRIDE: "-O clang-13" - <<: *buildman_and_testpy_dfn - -sandbox_spl test.py: - variables: - TEST_PY_BD: "sandbox_spl" - TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl" - <<: *buildman_and_testpy_dfn - -sandbox_noinst_test.py: - variables: - TEST_PY_BD: "sandbox_noinst" - TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl" - <<: *buildman_and_testpy_dfn - -sandbox_vpl test.py: - variables: - TEST_PY_BD: "sandbox_vpl" - TEST_PY_TEST_SPEC: "test_vpl_help or test_spl" - <<: *buildman_and_testpy_dfn - -evb-ast2500 test.py: - variables: - TEST_PY_BD: "evb-ast2500" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -evb-ast2600 test.py: - variables: - TEST_PY_BD: "evb-ast2600" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -sandbox_flattree test.py: - variables: - TEST_PY_BD: "sandbox_flattree" - <<: *buildman_and_testpy_dfn - -vexpress_ca9x4 test.py: - variables: - TEST_PY_BD: "vexpress_ca9x4" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -integratorcp_cm926ejs test.py: - variables: - TEST_PY_BD: "integratorcp_cm926ejs" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -qemu_arm test.py: - variables: - TEST_PY_BD: "qemu_arm" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu_arm64 test.py: - variables: - TEST_PY_BD: "qemu_arm64" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu_malta test.py: - variables: - TEST_PY_BD: "malta" - TEST_PY_TEST_SPEC: "not sleep and not efi" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -qemu_maltael test.py: - variables: - TEST_PY_BD: "maltael" - TEST_PY_TEST_SPEC: "not sleep and not efi" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -qemu_malta64 test.py: - variables: - TEST_PY_BD: "malta64" - TEST_PY_TEST_SPEC: "not sleep and not efi" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -qemu_malta64el test.py: - variables: - TEST_PY_BD: "malta64el" - TEST_PY_TEST_SPEC: "not sleep and not efi" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -qemu-ppce500 test.py: - variables: - TEST_PY_BD: "qemu-ppce500" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu-riscv32 test.py: - variables: - TEST_PY_BD: "qemu-riscv32" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu-riscv64 test.py: - variables: - TEST_PY_BD: "qemu-riscv64" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu-riscv32_spl test.py: - variables: - TEST_PY_BD: "qemu-riscv32_spl" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu-riscv64_spl test.py: - variables: - TEST_PY_BD: "qemu-riscv64_spl" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu-x86 test.py: - variables: - TEST_PY_BD: "qemu-x86" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -qemu-x86_64 test.py: - variables: - TEST_PY_BD: "qemu-x86_64" - TEST_PY_TEST_SPEC: "not sleep" - <<: *buildman_and_testpy_dfn - -r2dplus_i82557c test.py: - variables: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id i82557c_qemu" - <<: *buildman_and_testpy_dfn - -r2dplus_pcnet test.py: - variables: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id pcnet_qemu" - <<: *buildman_and_testpy_dfn - -r2dplus_rtl8139 test.py: - variables: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id rtl8139_qemu" - <<: *buildman_and_testpy_dfn - -r2dplus_tulip test.py: - variables: - TEST_PY_BD: "r2dplus" - TEST_PY_ID: "--id tulip_qemu" - <<: *buildman_and_testpy_dfn - -sifive_unleashed_sdcard test.py: - variables: - TEST_PY_BD: "sifive_unleashed" - TEST_PY_ID: "--id sdcard_qemu" - <<: *buildman_and_testpy_dfn - -sifive_unleashed_spi-nor test.py: - variables: - TEST_PY_BD: "sifive_unleashed" - TEST_PY_ID: "--id spi-nor_qemu" - <<: *buildman_and_testpy_dfn - -xilinx_zynq_virt test.py: - variables: - TEST_PY_BD: "xilinx_zynq_virt" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -xilinx_versal_virt test.py: - variables: - TEST_PY_BD: "xilinx_versal_virt" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -xtfpga test.py: - variables: - TEST_PY_BD: "xtfpga" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - <<: *buildman_and_testpy_dfn - -coreboot test.py: - variables: - TEST_PY_BD: "coreboot" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - artifacts: - paths: - - "*.html" - - "*.css" - expire_in: 1 week - <<: *buildman_and_testpy_dfn |