123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- # 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')
|