# 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:20180318.1724 .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 } 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 .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')