流水线创建好了: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^/