跳过Jenkins构建阶段,但要让它在后台运行

跳过Jenkins构建阶段,但要让它在后台运行,jenkins,jenkins-pipeline,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Groovy,是否可以跳过Jenkins构建步骤而不报告其状态 // Build Stage stage('build') { } // Test Stage stage('test') { } // Run at last stage('Last stage') { // I want to mark entire build as succeed regardless of following code //and do not want it to wait for the follo

是否可以跳过Jenkins构建步骤而不报告其状态

// Build Stage
stage('build') {
}

// Test Stage
stage('test') {
}

// Run at last
stage('Last stage') {
   // I want to mark entire build as succeed regardless of following code 
   //and do not want it to wait for the following code and pipeline to get completed.
   sh """ 
   """
   parallel 'name': {
      build job: "jobname1", propagate: true, wait: false
   }, 'pipeline2': {
      build job: "jobname2", propagate: true, wait: false
   }
}
正如您在上面的代码块中所看到的,我希望执行最后一个阶段的代码和管道,但是在它完成之前,我希望将主构建标记为“成功”状态,而不考虑此代码块

最后一个阶段目前需要2个多小时,我希望它在通知状态下被跳过,但实际上在后台执行


这是可以实现的吗?

我认为问题在于您将“传播”设置为true,这意味着作业必须等待以确定生成的状态。如果将“传播”设置为false,并将“等待”设置为false,则作业将简单地运行,管道将成功完成。另外,我认为并行执行构建没有多大好处。

这一步很好,我想在这两个构建之前调用一个shell脚本,我不想等待shell脚本完全执行…假设shell脚本需要1-2个小时…但一旦构建到达“最后阶段”阶段,我想将其标记为成功并在后台运行该阶段…简言之,寻找一种机制来设置“wait:false”特定于阶段而不是构建。好的,我明白你的意思了。您可以将shell步骤与两个外部构建并行,或者将shell步骤设置为自己的构建并与构建步骤一起运行。在后一种情况下,“最后阶段”将在构建排队后立即完成-非常接近您要查找的内容。