[Buildroot] [PATCH 05/10] gitlab-ci: handle the run-time tests conditions in script
Yann E. MORIN
yann.morin.1998 at free.fr
Sun Sep 6 20:12:24 UTC 2020
Note that we do not propagate the existing comment, because it is
partially wrong; instead we just keep the per-condition comments.
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
Cc: Romain Naour <romain.naour at gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Cc: Arnout Vandecappelle <arnout at mind.be>
---
support/misc/gitlab-ci.yml.in | 9 -------
support/scripts/generate-gitlab-ci-yml | 33 ++++++++++++++++++++++----
2 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/support/misc/gitlab-ci.yml.in b/support/misc/gitlab-ci.yml.in
index 7f2ae32725..c6c4d35a0c 100644
--- a/support/misc/gitlab-ci.yml.in
+++ b/support/misc/gitlab-ci.yml.in
@@ -96,15 +96,6 @@ one-defconfig:
.runtime_test:
extends: .runtime_test_base
- # Running the runtime tests for every push is too much, so limit to
- # explicit triggers through the API.
- rules:
- # For tags, create a pipeline.
- - if: '$CI_COMMIT_TAG'
- # For pipeline created by using a trigger token.
- - if: '$CI_PIPELINE_TRIGGERED'
- # For the branch or tag name named *-runtime-tests, create a pipeline.
- - if: '$CI_COMMIT_REF_NAME =~ /^.*-runtime-tests$/'
before_script:
- TEST_CASE_NAME=${CI_JOB_NAME}
diff --git a/support/scripts/generate-gitlab-ci-yml b/support/scripts/generate-gitlab-ci-yml
index 23db376944..525ea8ccab 100755
--- a/support/scripts/generate-gitlab-ci-yml
+++ b/support/scripts/generate-gitlab-ci-yml
@@ -8,10 +8,7 @@ main() {
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
+ gen_tests
}
preamble() {
@@ -55,4 +52,32 @@ gen_defconfigs() {
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 "${@}"
--
2.20.1
More information about the buildroot
mailing list