blob: db206432aae07b922c8bfe7363234241e7c686e6 [file] [log] [blame]
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} > >(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