背景: 我测试的一个项目CI包括好几个步骤,但是有的步骤是不能并行的,否则会互相影响

处理过程:

【方案一】:不推荐此方案

在每个步骤里面的shell脚本中加进程判断

示例:比如本任务有4个步骤,第2个步骤启动的时候会启动进程test2

那我在执行第2个步骤之前先判定进程test2是否存在,如果存在就循环等待直到进程消失

结果:虽然解决了大部分情况下的任务冲突,但是在两个任务在短时间内相继启动还是出问题了,原因是第2个步骤进程终止后还有后续生成报告的操作,这个需要步骤2生成在报告目录的数据,但我的脚本设置的是步骤2一旦启动就清空报告目录,这就导致上一个任务进程释放但还没来的及读取报告时,报告数据就被并行的任务清掉了,最终失败

【方案二】:推荐方案

解决方案:给步骤设置锁,让任务无法并行

在Jenkinsfile里面给步骤加锁,这样加锁的步骤就只能串行了,从而避免上述影响

注意: 只要锁名相同的步骤都会禁止并行,而不单禁止同一个state并行

示例代码:


stages {

    stage('stage-one') {
steps {
echo "step 1"
}
}
stage('stage-two') {
steps {
lock ('Lock Stage-Two'){
echo "step two"
}
}
} }

jenkins pipline 如何禁止任务并行的更多相关文章

  1. jenkins pipline 几个注意细节

    新建jenkins pipline 1)pipeline的脚本语法要正确,sonarqube的projectKey需要做相应的修改 2)先执行一次构建,会报错 3)进到jenkins workspac ...

  2. 持续集成工具之Jenkins pipline简单示例

    前文我们主要聊了下jenkins的插件安装.用户及权限管理.邮件发送.配置凭证到gitlab上拉取项目和创建普通job:回顾请参考https://www.cnblogs.com/qiuhom-1874 ...

  3. ubuntu 16.04 jenkins pipline的实现 最终docker启动服务

    准备工作:两台虚拟机A:192.168.1.60 B:192.168.1.61 C:一个存放代码的代码库(github)A:jenkins git docker openssh-server(ssh) ...

  4. jenkins pipline 和 jenkinsfile

    Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中.Jenkins Pipeline 提供了一套可扩展的 ...

  5. jenkins pipline和jenkinsfile

    Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中. Jenkins Pipeline 提供了一套可扩展 ...

  6. 使用Jenkins+Pipline 持构建自动化部署之安卓源码打包、测试、邮件通知

    一.引言 Jenkins 2.x的精髓是Pipeline as Code,那为什么要用Pipeline呢?jenkins1.0也能实现自动化构建,但Pipeline能够将以前project中的配置信息 ...

  7. jenkins pipline 发送邮件

    推荐一个好网站https://www.w3cschool.cn/jenkins/jenkins-e7bo28ol.html 获取git 用户信息// Get checkout output value ...

  8. Jenkins Pipline语法

    引用自:http://baijiahao.baidu.com/s?id=1582812185263227836&wfr=spider&for=pc 引用自:https://www.cn ...

  9. jenkins pipline 用法收集

    1.下载多个项目 node { stage('clone'){ dir('test1'){ checkout([$class: 'GitSCM', branches: [[name: '*/maste ...

随机推荐

  1. 阿里云服务器Web Deploy配置和使用Visual Studio进行Web项目发布部署遇到的坑

    阿里云的服务器一直闲着,烧着银子,当初花几千大洋开通,本想弄信息化的项目为所帮扶的贫困户脱贫助手,不想势单力薄,一直没有找到好的项目.最近大家都在众志成城抗击新肺疫情,于是又想能不能尽点自己的力量,于 ...

  2. input禁止输入的方法

    1: readonly规定输入字段为只读可复制,但是,用户可以使用Tab键切换到该字段,可选择,可以接收焦点,还可以选中或拷贝其文本. <input type="text" ...

  3. List保持顺序去重

    Map<String, List<Bean>> orderMap = list.stream().collect(Collectors.groupingBy(Bean::get ...

  4. M5310-A 版本

         模块外表            型号                           BAND                          M5310-A MBRH0S04 +NB ...

  5. Elasticsearch配置集群环境

    环境选择:            1.方案一:准备三台机器   每一台机器一个节点            2.方案二:准备一台机器   启动三个节点,用端口号区分即可            3.ES启 ...

  6. 剑指offer-面试题40-最下的k个数-快速排序

    /* 题目: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. */ /* 思路: 快速排序,找到第k+1大的数,其左边则为最 ...

  7. QQ常用表情

    以下表情均为QQ官方表情原图,版权归QQ所有,禁止用于商业用途. ![3nEdY9.png](https://s2.ax1x.com/2020/02/21/3nEdY9.png) ![3nEaFJ.p ...

  8. Mybaits(10)N+1问题

    N+1问题 从上面的例子日志中我们可以看到所有级联都成功了,但是引发了性能问题,例如我们在查询雇员的信息和工作任务信息,此时体检表和工牌信息就是多余,我们没必要查询一次.如果想日志体现的那样,取出了所 ...

  9. win7安装SQL Server 2005 的问题总结

    SQL Server 安装程序无法连接到数据库服务进行服务器配置. 错误为: [Microsoft][SQL Native Client]客户端不支持加密. 有关详细信息,请参阅服务器错误日志和安装日 ...

  10. jquery的封装与对象学习

    1.封装学习 /// <reference path="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" /> ...