【问题标题】:How to cancel/not execute Bitbucket Pipelines builds based on a condition?如何根据条件取消/不执行 Bitbucket Pipelines 构建?
【发布时间】:2019-04-08 19:59:32
【问题描述】:

我想更新我的 yml 文件以忽略某些用户的提交。这可能吗?有没有类似的解决方案?理想情况下,我什至不想一开始就触发构建。

yml 文件的伪代码示例(忽略语法,我只是展示我正在尝试做的事情)

user: git show -s --format='%ae' $BITBUCKET_COMMIT
unwantedUser: "person@mail.com"

pipelines:
  tags:
    '**' && user != unwantedUser: # any tags by wanted users
      - step:
          script:
            (...)

实现这一点的实际语法是什么?

【问题讨论】:

    标签: bash yaml bitbucket bitbucket-pipelines


    【解决方案1】:

    我最终在我的提交消息中包含了[skip ci] 字符串以避免触发管道。

    来自documentation

    我可以在不触发管道的情况下提交吗?是的。如果你不想 要在通常会触发的提交上运行管道,您可以 在提交信息的任何地方包含 [skip ci] 或 [ci skip] HEAD 提交。任何包含 [skip ci] 或 [ci skip] 的提交 消息被管道忽略。

    【讨论】:

    • 这会在使用 Squash 合并 PR 时导致问题,因为自动生成的评论包括先前提交的消息,它还会跳过合并管道的 ci
    • 好点,另一个不使用壁球的好理由。
    【解决方案2】:

    或者,如果您想手动触发管道,您可以使用“自定义”标签。

    来自documentation

    pipelines:
      custom: # Pipelines that can only be triggered manually
        sonar:
          - step:
              script:
                - echo "Manual triggers for Sonar are awesome!"
    

    自定义管道不会在提交到分支时自动运行。您可以使用提交视图页面或分支视图页面运行管道。

    【讨论】:

    • 很高兴知道。谢谢。
    猜你喜欢
    • 2019-11-30
    • 2017-12-10
    • 2018-12-25
    • 2021-08-14
    • 2011-11-09
    • 2017-11-24
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多