jenkinsFile阶段的后期操作获取前一阶段状态,而不是当前阶段状态 我有以下问题: 我的管道上有两个阶段,在第一阶段我失败了(预期),然后第二阶段被称为(预期),做它需要做的事情并返回成功。 然而,在我的第二阶段的后一步中,不是走向成功,而是走向失败。 有人知道如何绕过这个吗? stage('stage 1') { step { //failure } } stage('stage 2') { step { //success } post { success { echo 'I succeeded!' } unstable { echo 'I am unstable :/' } failure { echo 'I failed :(' } changed { echo 'Things were different before...' } } }
请参见以下场景和答案: 如果在第1阶段出现故障,则将不执行第2阶段:jenkinsFile阶段的后期操作获取前一阶段状态,而不是当前阶段状态 我有以下问题: 我的管道上有两个阶段,在第一阶段我失败了(预期),然后第二阶段被称为(预期),做它需要做的事情并返回成功。 然而,在我的第二阶段的后一步中,不是走向成功,而是走向失败。 有人知道如何绕过这个吗? stage('stage 1') { step { //failure } } stage('stage 2') { step { //success } post { success { echo 'I succeeded!' } unstable { echo 'I am unstable :/' } failure { echo 'I failed :(' } changed { echo 'Things were different before...' } } },jenkins,jenkins-pipeline,jenkins-plugins,jenkins-job-dsl,jenkins-cli,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Job Dsl,Jenkins Cli,请参见以下场景和答案: 如果在第1阶段出现故障,则将不执行第2阶段: 测试1:使阶段1失败并检查输出 pipeline { agent any stages{ stage('stage 1') { steps { echo "Hello stage 1" // deliberately failing stage 1 bat
测试1:使阶段1失败并检查输出
pipeline {
agent any
stages{
stage('stage 1') {
steps {
echo "Hello stage 1"
// deliberately failing stage 1
bat "set 1"
}
post {
success {
echo 'I succeeded!'
}
unstable {
echo 'I am unstable :/'
}
failure {
echo 'I failed :('
}
}
}
stage('stage 2') {
steps {
echo "stage 2"
}
post {
success {
echo 'I succeeded!'
}
unstable {
echo 'I am unstable :/'
}
failure {
echo 'I failed :('
}
changed {
echo 'Things were different before...'
}
}
}
}
}
输出:由于阶段1中的故障,未执行/跳过阶段2
测试2:通过阶段1,失败阶段2并检查输出
pipeline {
agent any
stages{
stage('stage 1') {
steps {
echo "Hello stage 1"
}
post {
success {
echo 'I succeeded!'
}
unstable {
echo 'I am unstable :/'
}
failure {
echo 'I failed :('
}
}
}
stage('stage 2') {
steps {
// deliberately failing stage 2
bat "set 1"
}
post {
success {
echo 'I succeeded!'
}
unstable {
echo 'I am unstable :/'
}
failure {
echo 'I failed :('
}
changed {
echo 'Things were different before...'
}
}
}
}
}
输出:阶段1通过,阶段2失败因此,考虑到上述示例,很明显,如果第1阶段失败,第2阶段将不会执行。请将代码片段作为测试代码作为参考示例
如果您希望在第1阶段失败的情况下执行第2阶段,则应执行
returnStatus
astrue
,如下所示:bat标签:“设置变量…”,返回状态:true,脚本:“设置1”
通过这种方式,两个阶段都会成功。这对你有用吗谢谢你的回答,但我所描述的是我面临的问题。也许我遗漏了一些信息,失败的一步是使用publishIssues,它来自于一个插件。在任何情况下,我都能找到一个解决办法,不再使用post操作。