Continuous integration 如何使用“在特定作业失败时触发作业”;何时:在“U故障”上;?

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

我在CICD工作,出于某种原因,我们希望在另一次工作失败时触发一项工作

在yaml文件中,我指定了“when:on_failure”,但我无法找到指定作业名称的解决方案

比如:“何时:失败:工作名称”


现在,我的“失败时”作业在任何作业失败时运行。

如果
job1
是第一个可能失败的作业,而
job2
是下一个应该触发的作业,那么我建议以下计划:

  • 始终执行
    job2
    ,不考虑以前的任何作业是否失败(使用
    when:always
  • 生成
    job1
    以将其结果(失败或成功)保存到人工制品文件中,该文件应可用于
    job2
  • job2
    中,仅根据上一步的人工制品内容执行所需操作:如果失败,则执行所需操作;如果成功,则跳过。 希望它有意义

欢迎来到StackOverflow。虽然这段代码片段可能是解决方案,但包含解释确实有助于提高文章的质量。请记住,您将在将来为读者回答这个问题,而这些人可能不知道您的代码建议的原因。这是行不通的。无论脚本是否成功,我都会得到“on failure”。
  script:
    - some commands
    - ...
    - touch $CI_PROJECT_DIR/success
  after_script:
    - |
      if [ -e success ]; then
        echo on success
      else
        echo on failure
      fi
```