优雅地停止并等待Jenkins中的上一个管道结束

uoifb46i  于 2023-06-21  发布在  Jenkins
关注(0)|答案(1)|浏览(141)

我们有一条由许多stagepost构建的管道

stage ('testEnvDeploy')
...
...
stage ('testA') ...
stage ('testB') ...
stage ('testC') ...
post { 
   always {
      //destroy what first stage (testEnvDeploy) deployed
   }
}

Deploy stage必须在我们的destroy完成后运行-除非它是第一次运行。
部署和销毁是启动进程的任务。摧毁舞台并不能阻止部署或摧毁。
每次推送,我都想跳过测试阶段,这样我们就不必等待或让Jenkins努力工作,但我想触及部署或销毁。
这意味着如果部署开始了,我们需要等到它结束。如果destroy启动,下一个管道部署阶段也应该等待。
我们添加了此选项

options {
   disableConcurrentBuilds(abortPrevious: true)
}

但这让我们等到上一个工作结束。
然后我们把它改成了false

options {
   disableConcurrentBuilds(abortPrevious: false)
}

现在,前一个作业跳转并运行post,新的管道已经开始部署-与前一个管道的销毁并行。
是否可以在管道之间进行同步,并获得我们想要实现的目标?
另一个问题是,当管道被中止时,是否有可能让当前运行的步骤正确完成而不杀死它?

xdyibdwo

xdyibdwo1#

管道是指:用于流水线操作的专用模块的线性序列。测试的目的也是为了不部署坏的集成代码,你必须通过然后部署。如果你不喜欢测试,就注解它们。
devops快速部署的given then方法是基于测试通过的,在您的情况下,您只需要持续部署选项而不是集成。持续集成非常强调测试自动化,以检查应用程序是否在新提交集成到主分支时中断。

相关问题