Continuous integration 如何使用“在特定作业失败时触发作业”;何时:在“U故障”上;?
我在CICD工作,出于某种原因,我们希望在另一次工作失败时触发一项工作 在yaml文件中,我指定了“when:on_failure”,但我无法找到指定作业名称的解决方案 比如:“何时:失败:工作名称”Continuous integration 如何使用“在特定作业失败时触发作业”;何时:在“U故障”上;?,continuous-integration,gitlab,gitlab-ci,Continuous Integration,Gitlab,Gitlab Ci,我在CICD工作,出于某种原因,我们希望在另一次工作失败时触发一项工作 在yaml文件中,我指定了“when:on_failure”,但我无法找到指定作业名称的解决方案 比如:“何时:失败:工作名称” 现在,我的“失败时”作业在任何作业失败时运行。如果job1是第一个可能失败的作业,而job2是下一个应该触发的作业,那么我建议以下计划: 始终执行job2,不考虑以前的任何作业是否失败(使用when:always) 生成job1以将其结果(失败或成功)保存到人工制品文件中,该文件应可用于job2
现在,我的“失败时”作业在任何作业失败时运行。如果
job1
是第一个可能失败的作业,而job2
是下一个应该触发的作业,那么我建议以下计划:
- 始终执行
,不考虑以前的任何作业是否失败(使用job2
)when:always
- 生成
以将其结果(失败或成功)保存到人工制品文件中,该文件应可用于job1
job2
- 在
中,仅根据上一步的人工制品内容执行所需操作:如果失败,则执行所需操作;如果成功,则跳过。 希望它有意义job2
script:
- some commands
- ...
- touch $CI_PROJECT_DIR/success
after_script:
- |
if [ -e success ]; then
echo on success
else
echo on failure
fi
```