1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #!/usr/bin/env bash
- set -e
- set -o pipefail
- main() {
- local template="${1}"
- preamble "${template}"
- gen_defconfigs
- gen_tests
- }
- preamble() {
- local template="${1}"
- cat - "${template}" <<-_EOF_
- # This file is generated; do not edit!
- # Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
- image: ${CI_JOB_IMAGE}
- _EOF_
- }
- gen_defconfigs() {
- local -a defconfigs
- local build_defconfigs cfg
- defconfigs=( $(cd configs; LC_ALL=C ls -1 *_defconfig) )
- build_defconfigs=false
- if [ -n "${CI_COMMIT_TAG}" ]; then
- # For tags, create a pipeline.
- build_defconfigs=true
- fi
- if [ -n "${CI_PIPELINE_TRIGGERED}" ]; then
- # For pipeline created by using a trigger token.
- build_defconfigs=true
- fi
- case "${CI_COMMIT_REF_NAME}" in
- # For the branch or tag name named *-defconfigs, create a pipeline.
- (*-defconfigs) build_defconfigs=true;;
- esac
- for cfg in "${defconfigs[@]}"; do
- if ${build_defconfigs}; then
- printf '%s: { extends: .defconfig }\n' "${cfg}"
- else
- printf '%s_check: { extends: .defconfig_check }\n' "${cfg}"
- fi
- done
- }
- gen_tests() {
- local -a tests
- local run_tests tst
- tests=( $(./support/testing/run-tests -l 2>&1 \
- | sed -r -e '/^test_run \((.*)\).*/!d; s//\1/'\
- | LC_ALL=C sort)
- )
- run_tests=false
- if [ -n "${CI_COMMIT_TAG}" ]; then
- # For tags, create a pipeline.
- run_tests=true
- fi
- if [ -n "${CI_PIPELINE_TRIGGERED}" ]; then
- # For pipeline created by using a trigger token.
- run_tests=true
- fi
- case "${CI_COMMIT_REF_NAME}" in
- # For the branch or tag name named *-runtime-tests, create a pipeline.
- (*-runtime-tests) run_tests=true;;
- esac
- if ${run_tests}; then
- printf '%s: { extends: .runtime_test }\n' "${tests[@]}"
- fi
- }
- main "${@}"
|