Jenkins 中如何一次构建多个项目

如果用Jenkins中的 pipeline 的话,

这个可以用jenkins pipline语法帮忙生成,

1. 同时 build 多个 stage

stage(‘test‘) {
    build job: ‘testPowerShell‘, parameters: [
     [$class: ‘StringParameterValue‘, name: ‘serviceNames‘, value: ‘reveal,TestCert‘],
     [$class: ‘StringParameterValue‘, name: ‘filelocation‘, value: ‘D:\\serverlist.json‘],
     [$class: ‘StringParameterValue‘, name: ‘groupNo‘, value: ‘0‘]
    ]
   }
   stage(‘test2‘) {
    build job: ‘testPowerShell‘, parameters: [
     [$class: ‘StringParameterValue‘, name: ‘serviceNames‘, value: ‘reveal,TestCert‘],
     [$class: ‘StringParameterValue‘, name: ‘filelocation‘, value: ‘D:\\serverlist.json‘],
     [$class: ‘StringParameterValue‘, name: ‘groupNo‘, value: ‘0‘]
    ]
   }

2. 使用 parallel 平行处理

parallel(
   job1:{stage(‘testPowerShell‘) {
    build job: ‘testPowerShell‘, parameters: [
     [$class: ‘StringParameterValue‘, name: ‘serviceNames‘, value: ‘reveal,TestCert‘],
     [$class: ‘StringParameterValue‘, name: ‘filelocation‘, value: ‘D:\\serverlist.json‘],
     [$class: ‘StringParameterValue‘, name: ‘groupNo‘, value: ‘0‘]
    ]
   }}
 ,
  job2:{stage(‘TestCopy‘) {
   build job: ‘TestCopy‘, parameters: [
    [$class: ‘StringParameterValue‘, name: ‘excludeFolders‘, value: ‘D:\\Downloads\\NewReveal\\reveal.js-master\\test D:\\Downloads\\NewReveal\\reveal.js-master\\js‘]
   ]
 }}
)

将多个 stage 视为同一个 node 会同时启动,会等待较长的 stage 完成后才统一返回结果

3. 在同一个 stage build 多个 job

有基础依赖的 job 先完成后再进行其他 job 的建置

只在 stage 2 传入多个 job 并使用 parallel build

def transformIntoStep(jobFullName) {
 return {
  build job: jobFullName,
  parameters: [string(name: ‘Environ‘, value: ‘QA‘)],
  quietPeriod: 3
 }
}

stage(‘Step1‘) {
 build job: ‘A01-TestDev‘, parameters: [
  [$class: ‘StringParameterValue‘, name: ‘serviceNames‘, value: ‘reveal,TestCert‘],
  [$class: ‘StringParameterValue‘, name: ‘filelocation‘, value: ‘D:\\serverlist.json‘],
  [$class: ‘StringParameterValue‘, name: ‘groupNo‘, value: ‘0‘]
 ]
}
stage(‘Step2‘) {
 def branches = [: ]
 def jobs = "${buildjobs}".tokenize(‘,‘)
 def i = 0;
 for (jobName in jobs) {
  //println(jobName);
  branches["job${i}"] = transformIntoStep(jobName);
  i++;
 }
 //println(branches);
 parallel branches;

}
stage(‘Step3‘) {
 build job: ‘A01-TestDev‘, parameters: [
  [$class: ‘StringParameterValue‘, name: ‘serviceNames‘, value: ‘reveal,TestCert‘],
  [$class: ‘StringParameterValue‘, name: ‘filelocation‘, value: ‘D:\\serverlist.json‘],
  [$class: ‘StringParameterValue‘, name: ‘groupNo‘, value: ‘0‘]
 ]
}

原文地址:https://www.cnblogs.com/flyhgx/p/8321341.html

时间: 2024-08-03 01:02:05

Jenkins 中如何一次构建多个项目的相关文章

Jenkins中maven的作用--构建项目(三)

本文主要根据Jenkins上的日志来继续说明构建项目的过程,上文我们已经讲到构建一个测试环境或单独终端的过程,详情可以了解上篇文章 一.背景介绍 首先看下SVN代码的仓库的结构: 代码仓库里有一个文件夹,可以随便取名,文件夹中可以放置很多单独的项目,每个项目下有branch,trunk,demand三个文件.在branch下面可以有pc端,微信端, APP端,后台等终端,从下面的结构中,可以看出每个终端的代码中有资源文件夹src(类的定义,配置文件,说明文档,jar包等)和pom文件. 二.构建

eclipse中启动调试maven构建的javaweb项目

RT,遇到这个问题,我的第一反应就是找教程,今天折腾了一天,书也看了,博客也看了,maven视频都看了,有种做不出来的感觉了,带着前几个小时看的相关的资料和经验,就自己去摸索了. 直接开始说我是怎么做出来的,摸索过程就不啰嗦了. step0,我用的eclipse的版本是luna,maven用的是3.0,blog中演示的项目是从网上下载的.其次,检查检查一下,下面这个,只要是这样就对了,这个版本的eclipse好像默认就是这样的,如果不是的话,就要在右边的add中摸索一下,讲mavendepend

Jenkins中的邮件配置

摘自http://blog.csdn.net/fullbug/article/details/53024562 Jenkins是一个很受欢迎的CI持续集成工具,能够实现项目的自动构建.打包.测试.发布等.还可以在构建失败.构建不稳定等状态后发送邮件通知.现介绍一下如何在Jenkins中配置实现邮件通知. 在Jenkins中配置实现邮件通知,Jenkins提供了两种方式的配置. 一种是Jenkins内置默认的邮件通知,但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容.无法定义发送邮件

Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目

/** * lihaibo * 文章内容都是根据自己工作情况实践得出. *未经作者同意,禁止转载 */ 一.使用maven编译 (maven编译  与 测试 test 和打包 package 和 部署 install 类似,不再赘述 ) 在项目的配置页面中有个maven配置:里面只有一个clean   就是清除以前的构建信息: 之前我使用了clean   package来编译打包:结果如下图: ---------------------------------------------------

Jenkins中集成Gcov代码覆盖率报告

最近终于把gcov代码覆盖报告集成到jenkins中了,总算是完成工作,写篇博客总结下. 我循序渐进地用了三个工具:gcov, lcov, gcovr 这三个工具原理(其实gcovr依赖于GNU的gcov的)都是收集你程序run之后所产生的*.gcda文件,总的来说,我个人觉得比较喜欢lcov,应为lcov的报告读起来很不错,可惜它不能集成到Jenkins... 从头说起... 一开始我用的是GNU tool gcov,网上学习了下gcov,生成了xx.cpp.gcov报告,然后就可以查看了,g

Jenkins 中运行Android lint和monkey

进入到相应job的配置页面. Lint: 1.在增加构建后操作中添加lint 2.在高级中添加lint的通过标准 monkey 1.在跑monkey前需要将此次构建的apk包安装到模拟器或者手机上,在增加构建步骤中添加"install Android package". 当build成功后,相应版本的路径下会生成的apk,例如: 与此同时,jenkins当前工程的workspace中也会产生apk,这个路径下的apk只有一组,每次build成功后都会更新,所以我们在APK file中填

在Jenkins中使用Git Plugin访问Https代码库失败的问题

最近需要在Jenkins上配置一个Job,SCM源是http://git.opendaylight.org/gerrit/p/integration.git 于是使用Jenkins的Git Plugin做这件事情. 结果报错如下: hudson.plugins.git.GitException: Failed to fetch from https://git.opendaylight.org/gerrit/p/integration.git at hudson.plugins.git.GitS

持续集成 解决 Jenkins 中无法展示 HTML 样式的问题

对于测试报告来说,除了内容的简洁精炼,样式的美观也很重要.常用的做法是,采用HTML格式的文档,并搭配CSS和JS,实现自定义的样式和动画效果(例如展开.折叠等). 在Jenkins中要展示HTML文档,通常采用的方式有两种: 使用HTML Publisher Plugin: 使用Files to archive功能,在Build Artifacts中显示HTML文档链接. 第一种方式配合插件,可以通过图形化操作实现简易配置,并且展示效果也不错:而第二种方式的优势在于使用Jenkins自带的功能

jenkins中通过execute shell启动的进程会被杀死的问题

在jenkins中配置自动更新部署项目时,如果采取用execute shell启动/关闭tomcat,会发现可以进行关闭tomcat, 但是无法启动tomcat,虽然构建会显示执行成功,但是查看进程,tomcat是没有启动的.这是因为Jenkins默认 会在Build结束后Kill掉所有的衍生进程.需要进行以下配置,才能避免此类情况发生: 1.重设环境变量build_id 在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的tomcat