Gitlab CI:当特定用户提交代码时,不要触发流水线

5
我们有一个自动化流程,在每个合并请求的结束时提交一个状态文件。我们希望配置一个管道,在除了该用户提交的提交之外的每次提交上运行。目前,该管道的配置如下所示:
test:
  stage: test
  script:
    - make test
  except:
    changes:
      - "the_status_file"

然而,有时状态文件根本不会改变。在这种情况下,管道会运行。

相反,我们希望配置管道忽略某个用户的提交(该用户是我们创建的自动化用户)。在gitlab ci中是否可以实现?

2个回答

3
我不清楚Gitlab CI是否有此功能。但是,如果您的用户是一个创建并推送提交的脚本,并且您对其具有控制权,则可以通过在提交消息中插入[ci skip][skip ci](或不插入)来决定是否触发CI管道。
参见:https://docs.gitlab.com/ee/ci/pipelines/#skip-a-pipeline

截至今天,[skip ci]仍然有效,但文档链接中的子锚点不再存在,并且在该页面上没有提到[ci skip][skip ci]的参考资料。 - Shlomo
谢谢您告诉我!我已经更改了URL(“跳过流水线”部分已移至“CI / CD流水线”页面)。 - Christophe Muller

2
那可以用rules来完成。
rules:
    - if: '$GITLAB_USER_LOGIN == "username"'
      when: never
    - when: on_success

困难的部分是,我不认为这个机器人有用户名。我们也尝试使用电子邮件,但由于某些原因似乎没有起作用。 - C_Z_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接