Concourse 管道:如何让嵌入式脚本无法通过管道

Concourse Pipeline: How to have an Embedded Script Fail the Pipeline

当我 运行 在 运行 参数内嵌套 Python 脚本的 Concourse 管道时,如下所示:

- task: some-task
    params:
      ...
    config:
      platform: linux
      ...
      run:
        path: bash
        args:
        - "-c"
        - |

          python my_failing_python_code.py

当 python 脚本失败并抛出出口 1 时,错误似乎并没有像我预期的那样冒泡到管道。总的来说,管道结束 "successfully".

我应该如何设置管道以读取管道内脚本 运行 的退出状态?

谢谢

如果这是脚本的全部内容,那么您可以将其替换为

run:
        path: python
        args:
        - my_failing_python_code.py

https://concourse-ci.org/hello-world-example.html

如果 shell 脚本还做其他事情,您缺少一个 set -e,告诉 shell 报告错误:

    run:
        path: bash
        args:
        - "-c"
        - |
          set -e
          python my_failing_python_code.py

https://concourse-ci.org/tasks.html