当我手动运行管道时,Gitlab 会触发所有监听分支更改的作业吗

时间:2021-01-04 12:39:36

标签: gitlab gitlab-ci

我有一个管道,其中包含由分支更改触发的多个作业:

deployDev:
  only:
    - dev
  script:
    - ...

deployProd:
  only:
    - master
  script:
    - ...

如果我现在点击 GitLab UI 中的“运行管道”按钮,它会触发这些作业还是仅触发指定 when:manual 的作业?

当我运行手动部署时,如何确保 deployDevdeployProd 不运行?

我已经在这里检查过:https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic,但我不确定。

2 个答案:

答案 0 :(得分:1)

它将运行与分支对应的所有作业,并等待手动作业的手动操作。

因此您的 deploydev 将针对您的开发管道运行,而其他作业将仅在生产管道中运行

答案 1 :(得分:1)

我也有点困惑你想从你的评论中得到什么,但是......

<块引用>

如果我现在点击 GitLab UI 中的“运行管道”按钮,它会触发这些作业还是仅触发指定 when:manual 的作业?

正如@Prashanna 所说,It'll run all jobs corresponding to the branch and will wait for manual action for manual jobs.

如果您不希望在按下 deployDev 按钮时 deployProdRun Pipeline 出现在流水线中,您可以使用:

  only:
    - master
  except:
    - web

来自您显示的链接 https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basicweb -

<块引用>

对于使用 GitLab UI 中的运行管道按钮创建的管道,来自项目的 CI/CD > 管道部分。

上面的作业只会出现在流水线中,当它是 master 分支时,并且当它没有被 Run Pipeline 按钮触发时。