Gitlab CI在2个手动作业之间选择

时间:2020-07-29 15:57:58

标签: gitlab-ci

我想知道在同一阶段是否有两种“手动作业”的方式,如果触发了一项,则第二项被取消了。

基本上,我想做的是拥有2个“手动作业”,一个继续执行我的管道,如果触发了该管道,则管道继续执行,第二个“手动作业”被取消。

或者,如果第二个手动作业被触发,则第一个手动作业将被取消并且管道停止。

我尝试了很多事情,但是似乎没有用,我也没有找到关于这种问题的话题。

enter image description here

1 个答案:

答案 0 :(得分:2)

我相信您可以使用Directed Acyclic Graph来确保job 2job 3manual job 1成功完成之前不会启动,但据我所知没有办法轻松取消一项工作。

您可以尝试使用Jobs API,但是我不确定如何从manual job 1获取manual job 2的ID,反之亦然。

取消整个管道很容易。您所需要做的就是使用predefined variable CI_PIPELINE_ID(或CI_PIPELINE_IID-我不确定哪一个是正确的)和Pipeline API

编辑:我想,知道管道ID后,您可以使用Jobs API获取管道的所有作业,然后将JSON解析为Job名称与ID的映射,最后使用该映射取消所有作业您想取消。