共计 996 个字符,预计需要花费 3 分钟才能阅读完成。
对于jenkins发布项目,无非就是自动触发或手动触发,自动触发一般都是由项目需求新增或更改才会引起。而这里不赘述自动触发,这里主要讲下手动触发的一些骚操作
手动触发任务运行很简单,打开控制台任务点击触发即可,但是这只能触发一个任务的运行,如果有多个任务呢?也可以一个一个点·~,如果有100+个任务呢?会不会点漏?会不会点错?会不会点到忘了进度?
针对这个问题我们可以试想一下,我们目前项目镜像 有两部分,一部分是基础系统镜像(centos/ubuntu/openelur),一个是应用和代码镜像(java/node/php),t倘若多个业务应用的系统镜像需要变更,这时就需要每个项目都触发一次。我们先看下在一个pipeline中如何调用另外一个pipeline
build job: '<Project name>', parameters: [[$class: 'StringParameterValue', name: 'param1', value: 'test_param']]
大致的样例如下
pipeline {
agent any
stages {
stage('Start') {
steps {
sh 'ls'
}
}
stage ('Invoke_pipeline') {
steps {
build job: 'pipeline1', parameters: [
string(name: 'param1', value: "value1")
]
}
}
stage('End') {
steps {
sh 'ls'
}
}
}
}
如上面所示,在pipeline中调用另外一个job,这个可以放在stage中,一般我们也可以放在post中来实现成功则运行下一条或失败运行其他联动job
post {
always {
echo 'We are in post part and Jenkins build with QA tests is going to be triggered.'
// For triggering Pipeline
build job: 'WGF-QA WITH ALLURE', parameters: [string(name: 'QA-Automation', value: 'value from Build pipeline')]
}
}
第一步已经解决了,那么如何多个呢?一个一个写到pipeline中?就算写到pipeline中,如何获取多个job?总不能还是一个一个手动找吧?这时我们就需要用到jenkins的api了
正文完