首页 > 解决方案 > 根据 aws codepipline 执行的状态将 jenkins 作业标记为成功/失败

问题描述

我有一个 jenkins 工作,它使用执行 shell 作为构建阶段。我正在使用此 shell 中的 aws cli 命令调用 3 个 AWS Codepipeline 执行。我的代码管道执行需要 4-5 分钟才能完成执行,但詹金斯作业在管道完成之前被标记为成功,即使管道在任何阶段都失败了。

有没有办法让 jenkins 作业仅在代码管道执行完成后才能完成,并根据我的 aws 代码管道的状态标记 Jenkins 作业成功/失败。

或者

如何根据我的 aws 代码管道的状态将 jenkins 作业标记为成功/失败。

标签: amazon-web-servicesjenkinsjenkins-pluginsaws-codepipeline

解决方案


'start-pipeline-execution' 是一个异步操作。您需要不断轮询执行的状态才能知道结果。

在您的 Jenkins 工作中,当您使用 start-pipeline-execution 启动管道时,您将需要使用 get-pipeline-execution CLI 调用[1]继续查询管道执行 ID ,并继续检查状态是否正常循环中的时间(比如 1 小时)。当 get-pipeline-execution return status='Succeeded' 时,Jenkins 以 0 退出,如果为 'Failed',则在 shell 步骤中以 -1 退出以使 Jenkins 作业失败。

exit -1

推荐阅读