diff options
author | Philippe Schenker <philippe.schenker@toradex.com> | 2020-08-06 19:11:49 +0200 |
---|---|---|
committer | Philippe Schenker <philippe.schenker@toradex.com> | 2020-08-14 13:14:01 +0200 |
commit | 5865d06b5ee8cd30e9c9929f067a3f8098cbcae7 (patch) | |
tree | 89e985ad6cf765e9f7e65a73d3e50b077f0f5a67 /.gitlab-ci.yml | |
parent | 816c768d1c38be498c24342f58aa54b35071d4e1 (diff) |
gitlab-ci: make use of upstream CI on our local infrastracture
And also adjust it to our needs so it runs faster
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 296 |
1 files changed, 28 insertions, 268 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55943bb3a2..8543953313 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,18 +1,26 @@ # SPDX-License-Identifier: GPL-2.0+ +variables: +# uncomment for the pipeline debug purpose +# CI_DEBUG_TRACE: "true" + CI_IMAGE: gitlab.int.toradex.com:4567/philippe.schenker/u-boot-toradex:bionic-20200112-21Feb2020 + DOCKER_HOST: tcp://docker:2375 + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" + GIT_STRATEGY: fetch + GIT_DEPTH: "1" + # Grab our configured image. The source for this is found at: # https://gitlab.denx.de/u-boot/gitlab-ci-runner -image: trini/u-boot-gitlab-ci-runner:bionic-20200112-21Feb2020 +image: $CI_IMAGE # We run some tests in different order, to catch some failures quicker. stages: - - testsuites - - test.py - - world build + - all-in-one-stage .buildman_and_testpy_template: &buildman_and_testpy_dfn tags: [ 'all' ] - stage: test.py + stage: all-in-one-stage before_script: # Clone uboot-test-hooks - git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks @@ -57,189 +65,31 @@ stages: fi; fi; -build all 32bit ARM platforms: +build all 64bit Toradex boards: tags: [ 'all' ] - stage: world build - script: - - ret=0; - ./tools/buildman/buildman -o /tmp -P -E arm -x aarch64 || ret=$?; - if [[ $ret -ne 0 && $ret -ne 129 ]]; then - ./tools/buildman/buildman -o /tmp -sdeP; - exit $ret; - fi; - -build all 64bit ARM platforms: - tags: [ 'all' ] - stage: world build - script: - - virtualenv -p /usr/bin/python3 /tmp/venv - - . /tmp/venv/bin/activate - - pip install pyelftools - - ret=0; - ./tools/buildman/buildman -o /tmp -P -E aarch64 || ret=$?; - if [[ $ret -ne 0 && $ret -ne 129 ]]; then - ./tools/buildman/buildman -o /tmp -sdeP; - exit $ret; - fi; - -build all PowerPC platforms: - tags: [ 'all' ] - stage: world build - script: - - ret=0; - ./tools/buildman/buildman -o /tmp -P -E powerpc || ret=$?; - if [[ $ret -ne 0 && $ret -ne 129 ]]; then - ./tools/buildman/buildman -o /tmp -sdeP; - exit $ret; - fi; - -build all other platforms: - tags: [ 'all' ] - stage: world build - script: - - ret=0; - ./tools/buildman/buildman -o /tmp -P -E -x arm,powerpc || ret=$?; + stage: all-in-one-stage + variables: + ARCH: arm64 + CROSS_COMPILE: /opt/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux- + TARGETS: "colibri-imx8qxp apalis-imx8qm verdin-imx8mm" + script: | + for TARGET in $TARGETS; do + echo -ne "#\n#\n#\n#\n#\n#\n# Building ${TARGET}\n#\n#\n#\n#\n#\n#\n" + make "${TARGET}_defconfig" + make -j$(nproc) u-boot.bin || ret=$? if [[ $ret -ne 0 && $ret -ne 129 ]]; then - ./tools/buildman/buildman -o /tmp -sdeP; - exit $ret; - fi; + exit $ret + fi + done # QA jobs for code analytics # static code analysis with cppcheck (we can add --enable=all later) cppcheck: tags: [ 'all' ] - stage: testsuites + stage: all-in-one-stage script: - cppcheck --force --quiet --inline-suppr . -# search for TODO within source tree -grep TODO/FIXME/HACK: - tags: [ 'all' ] - 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: - tags: [ 'all' ] - stage: testsuites - script: - - make htmldocs - -# some statistics about the code base -sloccount: - tags: [ 'all' ] - stage: testsuites - script: - - sloccount . - -# ensure all configs have MAINTAINERS entries -Check for configs without MAINTAINERS entry: - tags: [ 'all' ] - 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: - tags: [ 'all' ] - stage: testsuites - script: - - make tools-only_config tools-only -j$(nproc) - -# Ensure env tools build -Build envtools: - tags: [ 'all' ] - stage: testsuites - script: - - make tools-only_config envtools -j$(nproc) - -Run binman, buildman, dtoc and patman testsuites: - tags: [ 'all' ] - 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 pyelftools; - export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl; - export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; - export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; - ./tools/buildman/buildman -o /tmp -P sandbox_spl; - ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test; - ./tools/buildman/buildman -t; - ./tools/dtoc/dtoc -t; - ./tools/patman/patman --test - -# Test sandbox with test.py -sandbox test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "sandbox" - BUILDMAN: "^sandbox$" - <<: *buildman_and_testpy_dfn - -sandbox with clang test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "sandbox" - BUILDMAN: "^sandbox$" - OVERRIDE: "-O clang-7" - <<: *buildman_and_testpy_dfn - -sandbox_spl test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "sandbox_spl" - BUILDMAN: "^sandbox_spl$" - TEST_PY_TEST_SPEC: "test_ofplatdata" - <<: *buildman_and_testpy_dfn - -evb-ast2500 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "evb-ast2500" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^evb-ast2500$" - <<: *buildman_and_testpy_dfn - -sandbox_flattree test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "sandbox_flattree" - BUILDMAN: "^sandbox_flattree$" - <<: *buildman_and_testpy_dfn - -vexpress_ca15_tc2 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "vexpress_ca15_tc2" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^vexpress_ca15_tc2$" - <<: *buildman_and_testpy_dfn - -vexpress_ca9x4 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "vexpress_ca9x4" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^vexpress_ca9x4$" - <<: *buildman_and_testpy_dfn - -integratorcp_cm926ejs test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "integratorcp_cm926ejs" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^integratorcp_cm926ejs$" - <<: *buildman_and_testpy_dfn - qemu_arm test.py: tags: [ 'all' ] variables: @@ -256,93 +106,3 @@ qemu_arm64 test.py: BUILDMAN: "^qemu_arm64$" <<: *buildman_and_testpy_dfn -qemu_mips test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu_mips" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu_mips$" - <<: *buildman_and_testpy_dfn - -qemu_mipsel test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu_mipsel" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu_mipsel$" - <<: *buildman_and_testpy_dfn - -qemu_mips64 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu_mips64" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu_mips64$" - <<: *buildman_and_testpy_dfn - -qemu_mips64el test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu_mips64el" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu_mips64el$" - <<: *buildman_and_testpy_dfn - -qemu-ppce500 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu-ppce500" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu-ppce500$" - <<: *buildman_and_testpy_dfn - -qemu-riscv64 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu-riscv64" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu-riscv64$" - <<: *buildman_and_testpy_dfn - -qemu-x86 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu-x86" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu-x86$" - <<: *buildman_and_testpy_dfn - -qemu-x86_64 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "qemu-x86_64" - TEST_PY_TEST_SPEC: "not sleep" - BUILDMAN: "^qemu-x86_64$" - <<: *buildman_and_testpy_dfn - -zynq_zc702 test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "zynq_zc702" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^zynq_zc702$" - <<: *buildman_and_testpy_dfn - -xilinx_versal_virt test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "xilinx_versal_virt" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^xilinx_versal_virt$" - <<: *buildman_and_testpy_dfn - -xtfpga test.py: - tags: [ 'all' ] - variables: - TEST_PY_BD: "xtfpga" - TEST_PY_TEST_SPEC: "not sleep" - TEST_PY_ID: "--id qemu" - BUILDMAN: "^xtfpga$" - <<: *buildman_and_testpy_dfn |