jenkins - 在 Jenkins 中设置构建状态

标签 jenkins build continuous-integration devops

我有一份 Jenkins 工作。 这非常简单:从 git 拉取,然后运行构建。

构建只是一步:

批量执行窗口命令

在我的用例中,我需要运行一些 python 脚本。 有些会失败,有些则不会。

python a.py
python b.py

什么决定了构建的最终状态? 看来我可以通过以下方式编辑:

echo @STABLE > build.proprieties

但是如果用户没有指定STABLE/UNSTABLE状态是如何分配的呢? 如果 b.py 引发错误并失败会发生什么?

最佳答案

如果命令返回不为零的退出代码,Jenkins 会将管道解释为失败。

在内部,构建状态通过 currentBuild.currentResult 设置,它可以具有三个值:SUCCESSUNSTABLEFAILURE.

如果您想自己控制管道的失败/成功,您可以捕获异常/退出代码并手动设置 currentBuild.currentResult 的值。插件也使用此属性来更改管道的结果。

例如:

stage {
 steps {
  script {
    try {
        sh "exit 1" // will fail the pipeline
        sh "exit 0" // would be marked as passed
        currentBuild.currentResult = 'SUCCESS'
    } catch (Exception e) {
        currentBuild.currentResult = 'FAILURE'
        // or currentBuild.currentResult = 'UNSTABLE'
    }
  }
}}

关于jenkins - 在 Jenkins 中设置构建状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59065164/

相关文章:

jenkins - 如何使用 Jenkins job dsl 为 gitlab 插件设置 secret token ?

.net - 批准后使用 jenkinsfile 构建推广

bash - Jenkins 管道、bash 和管道

ios - Xcode 9 导出选项如何指定配置文件

macos - xcode4:链接器错误:找不到选项的目录

git - 尽可能推出最小的 repo 协议(protocol),以及浅克隆上的 git 子树问题

gradle - Gradle任务声明的完整语法

java - 如何运行 headless Selenium 脚本,主机和浏览器独立

continuous-integration - 从托管的 Team Foundation Service 下载构建 drop

mercurial - 如何让 CruiseControl.NET 与 Mercurial : "Source control failure (GetModifications)" 一起工作