流水线创建好了: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相关推荐

  1. jenkins pipeline之语法篇

    目录 一.为什么使用pipeline 二.常用的指令 agent stages stage steps parameters script 三.不太常用的指令 environment input po ...

  2. Jenkins Pipeline Kubernetes 如何创建 Pod

    Jenkins Pipeline & Kubernetes 如何创建 pod 文章目录 Jenkins Pipeline & Kubernetes 如何创建 pod 1. 前言 2. ...

  3. Jenkins Pipeline构建流水线发布

    Jenkins Pipeline构建流水线发布 1. Jenkins Pipeline 核心概念 Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成.交付管道; Pipel ...

  4. Jenkins Pipeline动态使用Git分支名称的技巧

    前言 在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说 ...

  5. Jenkins Pipeline插件十大最佳实践!

    Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则.基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本 ...

  6. Jenkins Pipeline 构建复杂的Electron程序

    最近一年都在捣腾Electron,从0.X版本,到现在最新Stable的3.X版本.一路上踩的坑很多,Electron的版本号也飞快的.项目设立的初衷是一份代码,即可构建出Windows和Mac,并且 ...

  7. 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s

    前言 在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境.测试环境.生产环境.虽然可以使用手动构建.上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用 ...

  8. Jenkins + Pipeline 构建流水线发布

      Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...

  9. Jenkins Pipeline 语法

    目录 声明性pipeline Sections agent pipeline与stage中的不同 参数 常用选项 发布 post stages steps Directives environment ...

最新文章

  1. 卷积神经网络中的参数计算
  2. cd返回上一 git_git统计代码量脚本
  3. 【转】C#基础概念之“什么是反射?”
  4. 【Wicket是个什么鬼】wicket框架URL路由规则
  5. spring boot 所有引用jar包及作用
  6. 解决windows10系统ssh-add报错的问题
  7. 21年编程,那些我踩过的坑!
  8. java不用插件播放媒体文件_java servlet不用插件上传文件:
  9. 【新书速递】你想知道的通信“灵魂三问”都在这里……(福利再现)
  10. 职教云自签系统部署教程及源码
  11. iKcamp团队制作|基于Koa2搭建Node.js实战(含视频)☞ 中间件用法
  12. RTT的线程同步篇——事件
  13. 5-5array统计tcp连接状态数量
  14. Vista曝致命漏洞 10秒钟可让系统崩溃
  15. Codeforces Round 1 - 10总结 【@Abandon】
  16. html 项目考勤展示页面,打卡页面.html
  17. gmail无法登陆的解决!!
  18. 选择高防空间应该注意什么?
  19. 火影忍者中的天才七忍者
  20. 运维与Python之间有着怎样的联系?

热门文章

  1. 路西法第一季为什么会被打伤_《数码宝贝》第一季,为何只有亚古兽与加布兽会究极进化?...
  2. php 返回索引,PHP mySQL - 你能否返回帶有數字索引的關聯數組?
  3. 压测学习总结(3)——Jmeter 脚本如何生成
  4. ZooKeeper学习总结(4)——Zookeeper选举机制总结
  5. 支付业务与技术架构学习总结(8)——支付系统设计包含:账户,对账,风控...
  6. Linux学习总结(56)——如何处理阿里云服务器上入侵的kdevtmpfsi 挖矿病毒
  7. oracle数据库stuff的用法,sql STUFF用法
  8. linux文本模式无法打字,文本终端模式下中文输入法(Fcitx)配置(openSUSE Leap 42.1)...
  9. android php实时聊天工具,Android_Android 应用APP加入聊天功能,简介 自去年 LeanCloud 发布实时 - phpStudy...
  10. html object标签与java,html之object标签的classid收集