我们有一条由许多stage
和post
构建的管道
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
,新的管道已经开始部署-与前一个管道的销毁并行。
是否可以在管道之间进行同步,并获得我们想要实现的目标?
另一个问题是,当管道被中止时,是否有可能让当前运行的步骤正确完成而不杀死它?
1条答案
按热度按时间xdyibdwo1#
管道是指:用于流水线操作的专用模块的线性序列。测试的目的也是为了不部署坏的集成代码,你必须通过然后部署。如果你不喜欢测试,就注解它们。
devops快速部署的given then方法是基于测试通过的,在您的情况下,您只需要持续部署选项而不是集成。持续集成非常强调测试自动化,以检查应用程序是否在新提交集成到主分支时中断。