Gitlab CI管道包含模板不起作用(秘密检测)

时间:2020-08-19 08:41:02

标签: continuous-integration gitlab gitlab-ci pipeline

我在使用Gitlab CI时遇到了一些奇怪之处,有人见过这样的东西吗?

我正在尝试通过简单的方式使用gitlab's secret detection

include:
  - template: Secret-Detection.gitlab-ci.yml

其中引用了this here。...但是它根本不起作用,没有任何步骤显示出来,除非重新-请从Secret-Detection.gitlab-ci.yml,但在我自己的仓库中.gitlab-ci.yml

secret_detection:
  rules:
    - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH

但是如果它已经在原始Secret-Detection.gitlab-ci.yml中了,为什么会有帮助?


基本上,这不起作用:

include:
  - template: Secret-Detection.gitlab-ci.yml

但这确实有效:

include:
 - template: Secret-Detection.gitlab-ci.yml

secret_detection:
  - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH

我正在使用Gitlab 13.2.3 EE。我在分支机构工作,而不是在母公司。

1 个答案:

答案 0 :(得分:1)

您要包含一个模板,然后覆盖secret_detection作业的默认行为。但是,这样做实际上是在覆盖工作的整个rules部分。

此:

rules:
    - if: $SECRET_DETECTION_DISABLED
      when: never
    - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH

成为这个:

rules:
    - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH

您的工作中是否可能定义了SECRET_DETECTION_DISABLED变量?如果是这样,使用原始模板将禁用秘密检测。通过覆盖作业的rules部分,您基本上不再检查SECRET_DETECTION_DISABLED。您可以通过在作业的printenv部分中添加script语句来检查变量的值。