Files
rpi-buildroot/support/misc/gitlab-ci.yml.in
Julien Olivain a99a6f3848 support/misc/gitlab-ci.yml.in: check legal-info in run_make
The script "utils/test-pkg" is systematically checking legal-info.
See [1]. This is useful to check all license hashes are up to date.

The Buildroot Gitlab CI integration has an identical testing
capability. It is faster because it can run all supported toolchain
test builds in parallel. See [2].

It was observed in [3] that the Gitlab CI test-pkg variant does not
check legal-info.

This commit align the Gitlab CI test-pkg behavior to the
"utils/test-pkg" script by adding legal-info in the run_make command
targets. Doing so checks legal-info in test-pkg cases, but also in
defconfigs (this was suggested by Arnout in [4]).

[1] https://gitlab.com/buildroot.org/buildroot/-/blob/2025.05/utils/test-pkg#L195
[2] https://gitlab.com/buildroot.org/buildroot/-/blob/2025.05/support/misc/gitlab-ci.yml.in#L129
[3] https://lore.kernel.org/buildroot/75e688887d95948c57a11416de3047b5@free.fr/
[4] https://lore.kernel.org/buildroot/614bec7e-0723-4bbd-8c3a-c801e91c29c3@rnout.be/T/#mcc803eeb38d09c1cc02b1333720845c54af86534

Cc: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
(cherry picked from commit c84762675c)
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2025-09-04 13:57:24 +02:00

155 lines
4.3 KiB
YAML

stages:
- download
- test
before_script:
- git config --global --add safe.directory ${CI_PROJECT_DIR}
.check-check-package_base:
stage: test
script:
- python3 -m pytest -v utils/checkpackagelib/
.check-check-symbol_base:
stage: test
script:
- python3 -m pytest -v utils/checksymbolslib/
.check-DEVELOPERS_base:
stage: test
script:
- utils/get-developers -v
.check-package_base:
stage: test
script:
- make check-package
.check-symbol_base:
stage: test
script:
- utils/check-symbols
.defconfig_check:
stage: test
script:
- DEFCONFIG_NAME=$(echo ${CI_JOB_NAME} | sed -e 's,_check$,,g')
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
- make ${DEFCONFIG_NAME}
- support/scripts/check-dotconfig.py .config configs/${DEFCONFIG_NAME}
artifacts:
when: on_failure
expire_in: 2 weeks
paths:
- .config
.run_make: &run_make
|
make O=${OUTPUT_DIR} world legal-info > >(tee build.log |grep '>>>') 2>&1 || {
echo 'Failed build last output'
tail -200 build.log
exit 1
}
.defconfig_base:
stage: test
script:
- DEFCONFIG_NAME=${CI_JOB_NAME}
- OUTPUT_DIR=output
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
- make ${DEFCONFIG_NAME}
- ./support/scripts/check-dotconfig.py .config ./configs/${DEFCONFIG_NAME}
- echo 'Build buildroot'
- *run_make
- |
./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
}
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
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
.runtime_test_download:
stage: download
# Keep test-dl directory so the downloaded files can be an artifact of
# the job passed to all jobs of next stages.
script: ./support/testing/run-tests -d test-dl/ --prepare-only
artifacts:
when: always
paths:
- test-dl/
.runtime_test_base:
stage: test
# 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:
- TEST_CASE_NAME=${CI_JOB_NAME}
- echo "Starting runtime test ${TEST_CASE_NAME}"
- |
./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME} || {
echo 'Failed runtime test last output'
if [ -f test-output/*-run.log ]; then
tail -200 test-output/*-run.log | sed 's/\r\r$//'
else
tail -200 test-output/*-build.log
fi
exit 1
}
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
artifacts:
when: always
expire_in: 2 weeks
paths:
- test-output/*.log
- test-output/*/.config
- test-output/*/images/*
.test_pkg:
stage: test
script:
- OUTPUT_DIR=${CI_JOB_NAME}
- echo "Configure Buildroot for ${OUTPUT_DIR}"
- make O=${OUTPUT_DIR} syncconfig
- make O=${OUTPUT_DIR} savedefconfig
- echo 'Build buildroot'
- *run_make
needs:
- pipeline: $PARENT_PIPELINE_ID
job: generate-gitlab-ci-yml
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
artifacts:
when: always
expire_in: 2 weeks
paths:
- build.log
- br-test-pkg/*/.config
- br-test-pkg/*/defconfig
- br-test-pkg/*/build/build-time.log
- br-test-pkg/*/build/packages-file-list*.txt