gitlab-ci: handle the basic tests in script
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 6 Sep 2020 20:12:27 +0000 (22:12 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Wed, 9 Sep 2020 07:25:52 +0000 (09:25 +0200)
Note that those tests were so far ignored only when requesting a single
defconfig build, or a single runtime test build; everything else
was trigerring thoses tests.

However, it feels more natural that they are also ignored when all
defconfigs build. or all runtime tests, are explictly requested.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
support/misc/gitlab-ci.yml.in
support/scripts/generate-gitlab-ci-yml

index 0f93d272be864854f006c0bdbfae42a3a31573b7..c4a37464f69e3eb3d1b14beb7c0ecacde8c05f00 100644 (file)
@@ -1,24 +1,15 @@
-.check_base:
-    rules:
-        - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/ || $CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/'
-          when: never
-        - when: always
-
-check-DEVELOPERS:
-    extends: .check_base
+.check-DEVELOPERS_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
+.check-flake8_base:
     script:
         - make check-flake8
 
-check-package:
-    extends: .check_base
+.check-package_base:
     script:
         - make check-package
 
index 25fecf37156ff7c0b1f123ccf40173e581738cfa..263d0c6d43c17b3a501746b3b9c657079f32bfc5 100755 (executable)
@@ -7,6 +7,7 @@ main() {
 
     preamble "${template}"
 
+    gen_basics
     gen_defconfigs
     gen_tests
 }
@@ -23,6 +24,22 @@ preamble() {
 _EOF_
 }
 
+gen_basics() {
+    local tst
+
+    # Skip basic tests when explicitly building defconfigs or runtime tests
+    case "${CI_COMMIT_REF_NAME}" in
+        (*-defconfigs)      return;;
+        (*-*_defconfig)     return;;
+        (*-runtime-tests)   return;;
+        (*-tests.*)         return;;
+    esac
+
+    for tst in DEVELOPERS flake8 package; do
+        printf 'check-%s: { extends: .check-%s_base }\n' "${tst}" "${tst}"
+    done
+}
+
 gen_defconfigs() {
     local -a defconfigs
     local build_defconfigs cfg
@@ -51,7 +68,7 @@ gen_defconfigs() {
 
     for cfg in "${defconfigs[@]}"; do
         if ${build_defconfigs}; then
-            printf '%s: { extends: .defconfig }\n' "${cfg}"
+            printf '%s: { extends: .defconfig_base }\n' "${cfg}"
         else
             printf '%s_check: { extends: .defconfig_check }\n' "${cfg}"
         fi
@@ -88,7 +105,7 @@ gen_tests() {
     esac
 
     if ${run_tests}; then
-        printf '%s: { extends: .runtime_test }\n' "${tests[@]}"
+        printf '%s: { extends: .runtime_test_base }\n' "${tests[@]}"
     fi
 }