groovy 如何在Jenkins pipeline中使用条件后置动作?

eyh26e7m  于 2022-12-11  发布在  Jenkins
关注(0)|答案(1)|浏览(171)

我正在使用Jenkins声明性管道,并希望根据构建状态执行一些构建后操作。
更准确地说,我希望这些条件为真:
beforeAgent true &&作业名称== 'Cypress测试'
下面是我的代码:

post {
        always {
            script {
                passwordIDs.each{ pw ->
                    credentialFetch.deleteTemporaryCredential(env.BUILD, pw, expireTime)
                  }
              }
        }
    }

知道在哪里可以使用我的条件吗?还有,既然Post不支持when条件,如何使用它们

zour9fqk

zour9fqk1#

你可以在后置条件的script块中使用normal if条件,就像你在一个普通阶段中所做的那样。例如,我在我的一个工作中使用了这个条件:

post {
    failure {
        script {
            def response = httpRequest '${env.BUILD_URL}/consoleText'
            if (response.content.contains("Automatic merge failed; fix conflicts")){
                env.BUILD_FAILURE_MESSAGE = "Checkout Failing! Make sure that there are no merge conflicts...
            } else {
                env.BUILD_FAILURE_MESSAGE = "Checkout Failing! Check the build log and re-run the build if the issue seems unrelated to your commit...
            }
        }
    }
}

正如您所看到的,这是一个普通的if条件,用于检查字符串是否包含文本。您应该能够以类似的方式使用条件:

if (beforeAgent && jobName == 'Cypress Test')

相关问题