summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Schenker <philippe.schenker@toradex.com>2020-08-06 19:11:49 +0200
committerPhilippe Schenker <philippe.schenker@toradex.com>2020-08-14 13:14:01 +0200
commit5865d06b5ee8cd30e9c9929f067a3f8098cbcae7 (patch)
tree89e985ad6cf765e9f7e65a73d3e50b077f0f5a67
parent816c768d1c38be498c24342f58aa54b35071d4e1 (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>
-rw-r--r--.gitlab-ci.yml296
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