首页 > 其他分享 >【Pipeline】Jenkins流水线parallel并行构建

【Pipeline】Jenkins流水线parallel并行构建

时间:2023-10-31 20:00:52浏览次数:36  
标签:Pipeline end xxxx steps Build Test Jenkins parallel stage

位于parallel块下的阶段都将并行执行,而且并行阶段还可以被分到不同的Jenkins agent上执行。

在默认情况下,Jenkins pipeline要等待parallel块下所有的阶段都执行完成,才能确定结果。如果希望所有并行阶段中的某个阶段失败后,就让其他正在执行的阶段都中止,那么只需要在与parallel块同级的位置加入failFast true就可以了。

并行步骤

pipeline {
    agent any
    stage("Parallel Build And Test") {
        failFast true // true 设置并发任务一旦有一个失败,其他并行任务都终止
        parallel {
            // stage("1.Xxxx Build and Test") 和 stage("2.XxxBuild and Test111")是并行
            stage("1.Xxxx Build and Test"){
                stages {
                    // stage("1.1 Xxx Build")和stage('1.2 Xxxxtest Test')是串行
                    stage("1.1 Xxx Build"){
                        steps{
                            script{ //启动的子job的名称、参数设置
                                downstreamBuild = build job: 'xxxxx', parameters: [
                                string(name: 'xxxx', value: env.xxxx),
                                string(name: 'xxxx', value: 'xxxx')],
                                wait: true
                                // 获取启动的子job的构建号,方便精准的获取构建产物
                                def downstreamBuildNumber = downstreamBuild.getNumber()
                                // buildNumber: downstreamBuildNumber.toString()这里需要string类型的
                                copyArtifacts filter: '*.zip, *.tgz', projectName: 'xxxx', selector: [$class: 'SpecificBuildSelector', buildNumber: downstreamBuildNumber.toString()]
                            } // end script
                        } // end steps
                    } // end stage("1.1 Xxx Build")
                    // stage("1.1 Xxx Build")和stage('1.2 Xxxxtest Test')是串行
                    stage('1.2 Xxxxtest Test') {
                        agent { label 'xxxx' }
                        steps {
                            cleanWs() //debug
                        } //steps
                    } //end stage('1.2 Xxxxtest Test')
                } // end stages
            }// end stage("1.Xxxx Build and Test")
            // stage("1.Xxxx Build and Test") 和 stage("2.XxxBuild and Test111")是并行
            stage("2.XxxBuild and Test111"){
                stages {
                    stage("2.1 xxx Build"){
                        steps{
                            script{
                                downstreamBuild = build job: 'xxxx', parameters: [
                                string(name: 'xxxx', value: env.xxxx),
                                string(name: 'xxxxx', value: 'xxxxx')],
                                wait: true
                            } // end script
                        } // end steps
                    } // end stage("2.1 xxx Build")

                    stage('2.2 Test111') {
                        agent { label 'xxx' }
                        steps {
                            cleanWs() //debug
                        } //steps
                        post {
                            failure {
                                script {
                                    echo "xxxxx"
                                }
                            }
                            success {
                                script {
                                    echo "xxxxx"
                                }
                            }
                        } // end post
                    } //end stage('2.2 Test111')
                } // end stages
            }// end stage("2.XxxBuild and Test111")
        } // end parallel
    } //  end stage("Parallel Build And Test")
} // end pipeline 

标签:Pipeline,end,xxxx,steps,Build,Test,Jenkins,parallel,stage
From: https://www.cnblogs.com/wucaiyun1/p/17801187.html

相关文章

  • 0.Jenkins设置为中文
    方式1:安装Locale插件1.1安装 1.1修改系统配置项,注意前面安装完需要重启Jenkins服务 方式2:安装汉化包并重启jenkins在上面插件不生效的情况下采用。 ......
  • centos 7 + JDK 1.8.0_381+jenkins-2.346.3-1.1环境搭建与安装
    一.查询JDK版本与Jenkins版本对应关系:https://pkg.jenkins.io/redhat-stable/二.centos7安装JDK1.8版本略三.下载并安装jenkinswgethttps://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpmrpm-ivhjenkins-2.346.3-1.1.noarch.rpm四.......
  • Jenkins忘记管理员密码
    一、删除Jenkins配置文件config.xml的如下内容重启Jenkins后发现不用密码可以直接登录二、启用安全域系统管理全局安全配置选择Jenkins专有用户数据库并保存三、设置admin密码系统管理→管理用户设置新的密码并保存退出后就可以用新密码登录了—————————......
  • 使用 Jenkins + Github + dokcer-compose 部署项目-环境准备篇
    JDK的安装及配置openjdk官网安装sudoadd-apt-repositoryppa:openjdk-r/ppaaptupdateaptupgradeaptinstallopenjdk-11-jdk配置以上方式安装的jdk路径位于/usr/lib/jvm/java-1.11.0-openjdk-amd64配置环境变量,根据自己的shell配置编辑对应的文件vi/etc/profile......
  • 搭建jenkins实现自动化部署
    一、安装jenkins1、添加yumrepos,然后安装sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat/jenkins.reposudorpm--importhttps://pkg.jenkins.io/redhat/jenkins.io.key注:如果上边的执行成功就不用再执行这两行了sudowget-O/etc/yum.repos.d/j......
  • jenkins 使用api生成api-token
    一,背景在使用jenkins-API的情况下,不方便存储用户API时可以在用户首次登陆的时候生成token-api二,获取JSESSIONID和Jenkins-Crumbcurl-verbose -s'http://127.0.0.1:8080/crumbIssuer/api/json'--userchengc9:xxxxxxxxx三,生成api-tokencurl-s-XPOST--cookie"JSESSION......
  • Jenkins安装手册
    Jenkins安装手册一、前期准备工作因为我是在Windows系统上连接Linux服务器以及需要把在Windows系统下载的安装包上传到Linux系统,所以需要用到两个工具---putty和FileZilla。Putty是一个免费的、Windows32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工......
  • jenkins shell
     #/usr/local/python3/bin/python3-mvenvvenv_jenkins#source$WORKSPACE/venv_jenkins/bin/activatepipinstall--upgradepippipinstall-rrequirements.txt--ignore-installed--no-cache-dirpipuninstall-yurllib3pipinstallurllib3==1.26.12pipuninstall-......
  • OpenCV4 :并行计算cv::parallel_for_
    OpenCV4:并行计算cv::parallel_for_在计算机视觉和图像处理领域,OpenCV(开源计算机视觉库)是一个非常强大和广泛使用的库。随着图像分辨率的提高和计算任务的复杂度增加,实时处理变得越来越困难。为了解决这个问题,OpenCV提供了并行处理能力,可以显著提高代码的性能。本文将介绍如何利用O......
  • 进程,线程,线程生命周期,原生线程,线程调度,Thread,ThreadPool,Task,Parallel,线程安全容器
    1.进程;程序在服务器上运行时,占用的计算机资源合集,就是进程2.线程:是程序能够独立运行的最小单位,共享进程的资源;3.线程的生命周期:3.1新建,启动,可运行,正在运行,new,start,runnable,running,dead,blocked阻塞4.原生线程:由操作系统负责创建、运行、切换、终止的线程就是原生线程5.线程......