From 35de2fdcf76e50004b150269b8ec03db7992acd8 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 18 Jul 2020 17:47:13 +0200 Subject: [PATCH] gitlab-ci: convert only/except to rules only/except keywords will be deprecated by upcoming gitlab release, upstream recommend to use rules keyword instead [1][2][3][4][5]. This patch convert .gitlab-ci.yml to use rules, no functional changes intended. After this patch, we should still have the following behaviour while pushing commit, tag, branches: - to trigger only the check-* jobs: $ git push gitlab HEAD: - to trigger all defconfigs and all check-* jobs: $ git push gitlab HEAD:-defconfigs - to trigger all runtime tests and all check-* jobs: $ git push gitlab HEAD:-runtime-tests - to trigger one defconfig job: $ git push gitlab HEAD:- - to trigger one runtime job: $ git push gitlab HEAD:- [1] https://gitlab.com/gitlab-org/gitlab/-/commit/7eaaa597e24bf24743bdd8f8d1d51ade83b3f6de [2] https://about.gitlab.com/releases/2020/06/22/gitlab-13-1-released/#templates-to-simplify-initial-rules-keyword-configuration [3] https://about.gitlab.com/releases/2020/05/22/gitlab-13-0-released/#auto-devops-and-secure-configuration-templates-are-changing-to-%60rules%60-instead-of-%60only/except%60 [4] https://gitlab.com/gitlab-org/gitlab/issues/27449 [5] https://gitlab.com/groups/gitlab-org/-/epics/2783 [6] https://buildroot.org/downloads/manual/manual.html#_using_the_run_tests_framework Signed-off-by: Romain Naour Cc: Ricardo Martincoski Cc: Arnout Vandecappelle Acked-by: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Yann E. MORIN --- .gitlab-ci.yml | 38 +++++++++++++++++++++++--------------- .gitlab-ci.yml.in | 38 +++++++++++++++++++++++--------------- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2501cac762..6cb4d34625 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,9 +7,10 @@ image: buildroot/base:20191027.2027 .check_base: - except: - - /^.*-.*_defconfig$/ - - /^.*-tests\..*$/ + rules: + - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/ || $CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/' + when: never + - when: always check-DEVELOPERS: extends: .check_base @@ -76,17 +77,21 @@ check-package: extends: .defconfig_base # Running the defconfigs for every push is too much, so limit to # explicit triggers through the API. - only: - - triggers - - tags - - /-defconfigs$/ + 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 *-defconfigs, create a pipeline. + - if: '$CI_COMMIT_REF_NAME =~ /^.*-defconfigs$/' before_script: - DEFCONFIG_NAME=${CI_JOB_NAME} one-defconfig: extends: .defconfig_base - only: - - /^.*-.*_defconfig$/ + rules: + # For the branch or tag name named *-*_defconfigs, create a pipeline. + - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/' before_script: - DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g') @@ -110,17 +115,20 @@ one-defconfig: extends: .runtime_test_base # Running the runtime tests for every push is too much, so limit to # explicit triggers through the API. - only: - - triggers - - tags - - /-runtime-tests$/ + 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} one-runtime_test: extends: .runtime_test_base - only: - - /^.*-tests\..*$/ + rules: + - if: '$CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/' before_script: - TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g') aarch64_efi_defconfig: { extends: .defconfig } diff --git a/.gitlab-ci.yml.in b/.gitlab-ci.yml.in index 6b09730a65..1facd2a66f 100644 --- a/.gitlab-ci.yml.in +++ b/.gitlab-ci.yml.in @@ -7,9 +7,10 @@ image: buildroot/base:20191027.2027 .check_base: - except: - - /^.*-.*_defconfig$/ - - /^.*-tests\..*$/ + rules: + - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/ || $CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/' + when: never + - when: always check-DEVELOPERS: extends: .check_base @@ -76,17 +77,21 @@ check-package: extends: .defconfig_base # Running the defconfigs for every push is too much, so limit to # explicit triggers through the API. - only: - - triggers - - tags - - /-defconfigs$/ + 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 *-defconfigs, create a pipeline. + - if: '$CI_COMMIT_REF_NAME =~ /^.*-defconfigs$/' before_script: - DEFCONFIG_NAME=${CI_JOB_NAME} one-defconfig: extends: .defconfig_base - only: - - /^.*-.*_defconfig$/ + rules: + # For the branch or tag name named *-*_defconfigs, create a pipeline. + - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/' before_script: - DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g') @@ -110,16 +115,19 @@ one-defconfig: extends: .runtime_test_base # Running the runtime tests for every push is too much, so limit to # explicit triggers through the API. - only: - - triggers - - tags - - /-runtime-tests$/ + 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} one-runtime_test: extends: .runtime_test_base - only: - - /^.*-tests\..*$/ + rules: + - if: '$CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/' before_script: - TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g') -- 2.30.2