![Thomas Petazzoni](/assets/img/avatar_default.png)
The snippet of code that runs a check-package on all .mk/.hash/Config.in files is currently only available within .gitlab-ci.yml, and isn't immediately and easily usable by Buildroot users. In order to simplify this, this commit introduces a top-level "check-package" make target that implements the same logic. The .gitlab-ci.yml file is changed to use "make check-package". Since this target is oriented towards Buildroot developers, we intentionally do not clutter the already noisy "make help" text with this additional make target. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
77 lines
2.4 KiB
YAML
77 lines
2.4 KiB
YAML
# 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
|
|
|
|
.defconfig_script: &defconfig_script
|
|
- echo 'Configure Buildroot'
|
|
- make ${CI_JOB_NAME}
|
|
- echo 'Build buildroot'
|
|
- |
|
|
make > >(tee build.log |grep '>>>') 2>&1 || {
|
|
echo 'Failed build last output'
|
|
tail -200 build.log
|
|
exit 1
|
|
}
|
|
|
|
check-gitlab-ci.yml:
|
|
script:
|
|
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
|
- make .gitlab-ci.yml
|
|
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
|
|
|
check-DEVELOPERS:
|
|
# 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:
|
|
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 $(cat files.processed)
|
|
after_script:
|
|
- wc -l files.processed
|
|
|
|
check-package:
|
|
script:
|
|
- make check-package
|
|
|
|
.defconfig: &defconfig
|
|
# Running the defconfigs for every push is too much, so limit to
|
|
# explicit triggers through the API.
|
|
only:
|
|
- triggers
|
|
- tags
|
|
script: *defconfig_script
|
|
artifacts:
|
|
when: always
|
|
expire_in: 2 weeks
|
|
paths:
|
|
- build.log
|
|
- output/images/
|
|
- output/build/build-time.log
|
|
- output/build/packages-file-list.txt
|
|
|
|
.runtime_test: &runtime_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: ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${CI_JOB_NAME}
|
|
artifacts:
|
|
when: always
|
|
expire_in: 2 weeks
|
|
paths:
|
|
- test-output/*.log
|
|
- test-output/*/.config
|
|
- test-output/*/images/*
|