我构建了两条管道,我希望其中一个在另一个完成运行时触发。具体来说,我希望数据库更改脚本在第一个管道中运行,然后触发第二个脚本来获取代码以使用它。看起来这应该通过将第一个管道设置为第二个管道的材质来完成,但它似乎不起作用。
以下是我尝试使用的变量:
Automatic pipeline scheduling
Trigger on completion of previous stage
Fetch updates to this repository only on webhook or manual trigger
在高级设置中访问 Git 存储库的资料我发现前两个是有联系的。设置一个以相同的方式设置另一个,尽管我认为管道可以有多个阶段,因此对它们有不同的设置,但我不需要设置多个阶段来查看这一点。
如果变量 1 设置为 False,则触发上游管道不会触发下游管道。但是,如果变量 3 设置为仅在手动触发时获取,则运行管道不会获取当前的 Git 存储库,而是使用它获取的最后一个存储库。然而,如果我使用“材质”页面上的“触发更新”按钮手动触发材质更新,那么管道会以某种方式注意到这一点并运行整个管道!
问题陈述:运行生产推送时,我想触发上游管道来获取并运行当前数据库更新,然后触发下游管道来获取并安装当前代码。
我找不到任何组合可以做到这一点。关于我还应该尝试什么的任何建议?
我将此用作解决方法,而不是实际的解决方案:
git pull
的任务命令,指向我的数据库更新脚本的位置。git pull
的任务命令,指向我要更新的网站的位置。我有额外的命令,以及
git pull
的额外语法,但这似乎与手动触发管道的核心问题无关;我只是让它做我想做的事。