#!/usr/bin/env bash set -e set -o pipefail main() { local template="${1}" preamble "${template}" gen_defconfigs ./support/testing/run-tests -l 2>&1 \ | sed -r -e '/^test_run \((.*)\).*/!d; s//\1: { extends: .runtime_test }/' \ | LC_ALL=C sort } 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 printf '%s_check: { extends: .defconfig_check }\n' "${cfg}" if ${build_defconfigs}; then printf '%s: { extends: .defconfig }\n' "${cfg}" fi done } main "${@}"