| 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 |