jenkins pipeline之如何串联多个Job
流水线创建好了:https://blog.csdn.net/wxt_hillwill/article/details/118725982
语法也学习完成:https://blog.csdn.net/wxt_hillwill/article/details/118730053
现在让我回到最开始要做的的事情,串联多个Job:
1、pipeline通过build方法触发Job
pipeline{stages{stage('JobA'){steps{build job: 'JobNameA'}}}
}
2、如果需要串联多个Job,只需要多次调用build方法即可:
pipeline{stages{stage('JobA'){steps{build job: 'JobNameA'}}stage('JobB'){steps{build job: 'JobNameB'}}}
}
3、再通过parameters实现参数化:
pipeline{agent{label '192.168.210.62'}stages{stage('JobA'){steps{build job: 'JobNameA', parameters: [string(name: 'ServerPackage', value: "${ServerPackage}"), string(name: 'Console_IP', value: "${Console_IP}")]}}stage('JobB'){steps{build job: 'JobNameB', parameters: [string(name: 'ServerPackageNew', value: "${ServerPackageNew}"), string(name: 'UpdatePackage', value: "${UpdatePackage}"), string(name: 'Console_IP', value: "${Console_IP}")]}}}
}
4、关于文件上传的问题
因为我还有一个文件参数需要传递,所以上面的实现还存在一个问题。直接使用Jenkins Pipeline的File parameter,无法将文件上传到当前job的workspace下,需要通过调用第三方jenkinsci-unstashParam-library库实现。配置方法:
① 下载jenkinsci-unstashParam-library的zip压缩包,再将其解压并拷贝到Jenkins本机(我拷贝到了/opt/identity/Jenkins2Library/jenkinsci-unstashParam-library-master目录下)。下载地址:https://github.com/janvrany/jenkinsci-unstashParam-library
② 再以此执行几个命令:
git init
git add .
git commit -m "init"
③ 登录Jenkins界面,在系统管理->系统配置里面找到Global Pipeline Library,按照下面的方式进行配置并保存:
④ 最终优化完成的实现如下:
library "jenkinsci-unstashParam-library"
def json_upload
pipeline{agent{label '192.168.210.62'}stages{stage('JobA'){steps{build job: 'JobNameA', parameters: [string(name: 'ServerPackage', value: "${ServerPackage}"), string(name: 'Console_IP', value: "${Console_IP}")]}}stage('json_upload'){steps{script{json_upload = unstashParam "abc.json"sh "pwd ${json_upload}"sh "mv ${json_upload} ../JobNameB/"println "curr file is: ${json_upload}"}}}stage('JobB'){steps{build job: 'JobNameB', parameters: [string(name: 'ServerPackageNew', value: "${ServerPackageNew}"), string(name: 'UpdatePackage', value: "${UpdatePackage}"), string(name: 'Console_IP', value: "${Console_IP}")]}}}
}
5、运行一下,最后看一下效果 \^o^/
jenkins pipeline之如何串联多个Job相关推荐
- jenkins pipeline之语法篇
目录 一.为什么使用pipeline 二.常用的指令 agent stages stage steps parameters script 三.不太常用的指令 environment input po ...
- Jenkins Pipeline Kubernetes 如何创建 Pod
Jenkins Pipeline & Kubernetes 如何创建 pod 文章目录 Jenkins Pipeline & Kubernetes 如何创建 pod 1. 前言 2. ...
- Jenkins Pipeline构建流水线发布
Jenkins Pipeline构建流水线发布 1. Jenkins Pipeline 核心概念 Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成.交付管道; Pipel ...
- Jenkins Pipeline动态使用Git分支名称的技巧
前言 在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说 ...
- Jenkins Pipeline插件十大最佳实践!
Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则.基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本 ...
- Jenkins Pipeline 构建复杂的Electron程序
最近一年都在捣腾Electron,从0.X版本,到现在最新Stable的3.X版本.一路上踩的坑很多,Electron的版本号也飞快的.项目设立的初衷是一份代码,即可构建出Windows和Mac,并且 ...
- 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s
前言 在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境.测试环境.生产环境.虽然可以使用手动构建.上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用 ...
- Jenkins + Pipeline 构建流水线发布
Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...
- Jenkins Pipeline 语法
目录 声明性pipeline Sections agent pipeline与stage中的不同 参数 常用选项 发布 post stages steps Directives environment ...
最新文章
- 卷积神经网络中的参数计算
- cd返回上一 git_git统计代码量脚本
- 【转】C#基础概念之“什么是反射?”
- 【Wicket是个什么鬼】wicket框架URL路由规则
- spring boot 所有引用jar包及作用
- 解决windows10系统ssh-add报错的问题
- 21年编程,那些我踩过的坑!
- java不用插件播放媒体文件_java servlet不用插件上传文件:
- 【新书速递】你想知道的通信“灵魂三问”都在这里……(福利再现)
- 职教云自签系统部署教程及源码
- iKcamp团队制作|基于Koa2搭建Node.js实战(含视频)☞ 中间件用法
- RTT的线程同步篇——事件
- 5-5array统计tcp连接状态数量
- Vista曝致命漏洞 10秒钟可让系统崩溃
- Codeforces Round 1 - 10总结 【@Abandon】
- html 项目考勤展示页面,打卡页面.html
- gmail无法登陆的解决!!
- 选择高防空间应该注意什么?
- 火影忍者中的天才七忍者
- 运维与Python之间有着怎样的联系?
热门文章
- 路西法第一季为什么会被打伤_《数码宝贝》第一季,为何只有亚古兽与加布兽会究极进化?...
- php 返回索引,PHP mySQL - 你能否返回帶有數字索引的關聯數組?
- 压测学习总结(3)——Jmeter 脚本如何生成
- ZooKeeper学习总结(4)——Zookeeper选举机制总结
- 支付业务与技术架构学习总结(8)——支付系统设计包含:账户,对账,风控...
- Linux学习总结(56)——如何处理阿里云服务器上入侵的kdevtmpfsi 挖矿病毒
- oracle数据库stuff的用法,sql STUFF用法
- linux文本模式无法打字,文本终端模式下中文输入法(Fcitx)配置(openSUSE Leap 42.1)...
- android php实时聊天工具,Android_Android 应用APP加入聊天功能,简介
自去年 LeanCloud 发布实时 - phpStudy...
- html object标签与java,html之object标签的classid收集