JenkinsCI-Pipline01
来源:互联网 发布:sqlserver generator 编辑:程序博客网 时间:2024/06/05 19:14
Pipline的介绍使用见官网:https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+as+Code
示例1:
需求说明:test1,作为main job调用test2,test3,两个job,并行编译,在test1中传入Branch参数,并使得test2,test3使用同样的branch,而test2,test3 fail不会使得test1 fail,test会等待test2,test3构建完成之后才停止。如果在build test1之前 勾选了smoketest选项那么构建smoke-test job,不必等待该job的结果。smoketest为并行编译总体完成之后才编译。test2,test3同样要有Branch parameter.main函数可以作为一个环境变量设置函数。
这个pipline是在test1上面的。
/** define main**/def main() { return { node('master') { try { echo 'hello world' } catch (err) { echo "main job error: Marking job as failed" } } }}/** define test2**/def test2() { return { try { build job: "test2", parameters: [ [$class: 'StringParameterValue', name: "Branch", value: "$Branch"], ] } catch (err) { echo "test2 error: Ignoring status" } }}/** define test3**/def test3() { return { try { build job: "test3", parameters: [ [$class: 'StringParameterValue', name: "Branch", value: "$Branch"], ] } catch (err) { echo "test3 error: Ignoring status" } }}/** define parallel task,60 minutes is a limit time*/def stepsForParallel = [:]stepsForParallel['main'] = main()stepsForParallel['test2'] = test2()stepsForParallel['test3'] = test3()stage('TOTAL') { try { timeout(time:60, unit:'MINUTES') { stepsForParallel.failFast = true parallel stepsForParallel } }catch (err) { throw err }}/** * Tests job: DON'T WAIT ! */if (smoketest == "true") { build job: "smoke-test", wait: false}
OutPut:
Started by user louis[Pipeline] stage[Pipeline] { (TOTAL)[Pipeline] timeoutTimeout set to expire in 1 hr 0 min[Pipeline] {[Pipeline] parallel[Pipeline] [main] { (Branch: main)[Pipeline] [test2] { (Branch: test2)[Pipeline] [test3] { (Branch: test3)[Pipeline] [main] node[main] Running on master in /var/lib/jenkins/workspace/test1[Pipeline] [test2] build (Building test2)[test2] Scheduling project: test2[Pipeline] [test3] build (Building test3)[test3] Scheduling project: test3[Pipeline] [main] {[Pipeline] [main] echo[main] hello world[Pipeline] [main] }[Pipeline] [main] // node[Pipeline] [main] }[test2] Starting building: test2 #12[test3] Starting building: test3 #7[Pipeline] [test3] }[Pipeline] [test2] }[Pipeline] // parallel[Pipeline] }[Pipeline] // timeout[Pipeline] }[Pipeline] // stage[Pipeline] build (Building smoke-test)Scheduling project: smoke-test[Pipeline] End of PipelineFinished: SUCCESS
阅读全文
0 0
- JenkinsCI-Pipline01
- JenkinsCI-GroovyScripts01
- jenkinsCI初探(推荐阅读)
- docker registry私服搭建
- 深入理解CRC校验
- day02-Strong&weak; 图片浏览器、tom 猫
- VC++ 绘图控制(对话框和单文档消息传递)
- 实现strstr()函数
- JenkinsCI-Pipline01
- 支付平台的接入
- Codeforces 821E Okabe and El Psy Kongroo 递推+矩阵幂
- LOJ 6087. 毒瘤题 (数论)
- React-Native极光推送android和ios证书申请
- unity3D 射线的使用
- SpringBoot集成struts2,mybatis
- Spring MVC 注解——@Autowired
- react从零到native--npm及webpack学习