![Jugurtha BELKALEM](/assets/img/avatar_default.png)
Used to launch qemu tests for various qemu architectures. Neverthless to say that this file skips any other job different from qemu (only qemu configurations are runtime tested). Add the log generated by Qemu to the build artefacts. Signed-off-by: Jugurtha BELKALEM <jugurtha.belkalem@smile.fr> Signed-off-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
126 lines
3.8 KiB
YAML
126 lines
3.8 KiB
YAML
# Configuration for Gitlab-CI.
|
|
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
|
|
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
|
|
# It needs to be regenerated every time a defconfig is added, using
|
|
# "make .gitlab-ci.yml".
|
|
|
|
image: buildroot/base:20191027.2027
|
|
|
|
.check_base:
|
|
except:
|
|
- /^.*-.*_defconfig$/
|
|
- /^.*-tests\..*$/
|
|
|
|
check-DEVELOPERS:
|
|
extends: .check_base
|
|
# get-developers should print just "No action specified"; if it prints
|
|
# anything else, it's a parse error.
|
|
# The initial ! is removed by YAML so we need to quote it.
|
|
script:
|
|
- "! utils/get-developers | grep -v 'No action specified'"
|
|
|
|
check-flake8:
|
|
extends: .check_base
|
|
before_script:
|
|
# Help flake8 to find the Python files without .py extension.
|
|
- find * -type f -name '*.py' > files.txt
|
|
- find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
|
|
- sort -u files.txt | tee files.processed
|
|
script:
|
|
- python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
|
|
after_script:
|
|
- wc -l files.processed
|
|
|
|
check-gitlab-ci.yml:
|
|
extends: .check_base
|
|
script:
|
|
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
|
- make .gitlab-ci.yml
|
|
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
|
|
|
check-package:
|
|
extends: .check_base
|
|
script:
|
|
- make check-package
|
|
|
|
.defconfig_base:
|
|
script:
|
|
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
|
|
- make ${DEFCONFIG_NAME}
|
|
- echo 'Build buildroot'
|
|
- |
|
|
make > >(tee build.log |grep '>>>') 2>&1 || {
|
|
echo 'Failed build last output'
|
|
tail -200 build.log
|
|
exit 1
|
|
}
|
|
- |
|
|
./support/scripts/boot-qemu-image.py "${DEFCONFIG_NAME}" > >(tee runtime-test.log) 2>&1 || {
|
|
echo 'Failed runtime test last output'
|
|
tail -200 runtime-test.log
|
|
exit 1
|
|
}
|
|
artifacts:
|
|
when: always
|
|
expire_in: 2 weeks
|
|
paths:
|
|
- .config
|
|
- build.log
|
|
- output/images/
|
|
- output/build/build-time.log
|
|
- output/build/packages-file-list.txt
|
|
- output/build/*/.config
|
|
- runtime-test.log
|
|
|
|
.defconfig:
|
|
extends: .defconfig_base
|
|
# Running the defconfigs for every push is too much, so limit to
|
|
# explicit triggers through the API.
|
|
only:
|
|
- triggers
|
|
- tags
|
|
- /-defconfigs$/
|
|
before_script:
|
|
- DEFCONFIG_NAME=${CI_JOB_NAME}
|
|
|
|
one-defconfig:
|
|
extends: .defconfig_base
|
|
only:
|
|
- /^.*-.*_defconfig$/
|
|
before_script:
|
|
- DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
|
|
|
.runtime_test_base:
|
|
# Keep build directories so the rootfs can be an artifact of the job. The
|
|
# runner will clean up those files for us.
|
|
# Multiply every emulator timeout by 10 to avoid sporadic failures in
|
|
# elastic runners.
|
|
script:
|
|
- echo "Starting runtime test ${TEST_CASE_NAME}"
|
|
- ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
|
|
artifacts:
|
|
when: always
|
|
expire_in: 2 weeks
|
|
paths:
|
|
- test-output/*.log
|
|
- test-output/*/.config
|
|
- test-output/*/images/*
|
|
|
|
.runtime_test:
|
|
extends: .runtime_test_base
|
|
# Running the runtime tests for every push is too much, so limit to
|
|
# explicit triggers through the API.
|
|
only:
|
|
- triggers
|
|
- tags
|
|
- /-runtime-tests$/
|
|
before_script:
|
|
- TEST_CASE_NAME=${CI_JOB_NAME}
|
|
|
|
one-runtime_test:
|
|
extends: .runtime_test_base
|
|
only:
|
|
- /^.*-tests\..*$/
|
|
before_script:
|
|
- TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|