首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >詹金斯出版社postBuildScripts不起作用

詹金斯出版社postBuildScripts不起作用
EN

Stack Overflow用户
提问于 2021-07-27 21:12:11
回答 1查看 575关注 0票数 2

我有一个groovy脚本来在Jenkins中设置一个预定的作业。

我想在失败的构建上执行一些shell脚本。

如果在作业被groovy脚本更新后,在创建作业之后手动使用脚本,它们就会运行。

但是groovy脚本没有添加它:

代码语言:javascript
复制
job('TestingAnalysis') {

  triggers {
    cron('H 8 28 * *')
  }

  steps {
    shell('some jiberish to create error')
  }
  publishers {
    postBuildScripts {
        steps {
          shell('echo "fff"')
          shell('echo "FFDFDF"')
          }
        onlyIfBuildSucceeds(false)
        onlyIfBuildFails(true)
    }
    retryBuild {
        rerunIfUnstable()
        retryLimit(3)
        fixedDelay(600)
    }
  }
}

每件事都很好,除了:

代码语言:javascript
复制
    postBuildScripts {
        steps {
          shell('echo "fff"')
          shell('echo "FFDFDF"')
          }
        onlyIfBuildSucceeds(false)
        onlyIfBuildFails(true)
    }

这是我的结果:

我尝试了postBuildSteps,但也遇到了错误。

我也尝试了错误:

代码语言:javascript
复制
    postBuildScripts {
        steps {
          sh' echo "ggg" '
          }
        onlyIfBuildSucceeds(false)
        onlyIfBuildFails(true)
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-28 12:27:22

看看詹金斯-66189,似乎PostBuildScript的3.0版本出现了一个问题,即不再支持旧的语法(您正在使用的语法)。为了在Job脚本中使用新版本,您需要使用动态DSL语法

在您自己的Jenkins实例中使用以下链接查看正确的用法:

YOUR_JENKINS_URL/plugin/job-dsl/api-viewer/index.html#path/freeStyleJob-publishers-postBuildScript.

它将帮助您构建正确的命令。就你而言,情况将是:

代码语言:javascript
复制
job('TestingAnalysis') {
    triggers {
        cron('H 8 28 * *')
    }
    steps {
        shell('some jiberish to create error')
    }
    publishers {
        postBuildScript {
            buildSteps {
                postBuildStep {
                    stopOnFailure(false) // Mandatory setting
                    results(['FAILURE']) // Replaces onlyIfBuildFails(true)
                    buildSteps {
                        shell {
                            command('echo "fff"')
                        }
                        shell {
                            command('echo "FFDFDF"')
                        }
                    }
                }
            }
            markBuildUnstable(false)  // Mandatory setting
        }
    }
}

注意,您现在没有使用像onlyIfBuildSucceedsonlyIfBuildFails这样的函数,而是将相关构建结果的列表传递给results函数。(成功,不稳定,失败,NOT_BUILT,中止)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68551832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档