mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-10 08:14:09 -09:00
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>
155 lines
4.3 KiB
YAML
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
|