【持续集成】使用Jenkins实现多平台并行集成

使用Jenkins实现多平台并行集成

我们的后端C应用都是支持跨平台的,至少目前在LinuxSolaris上运行是没有问题的,这样一来我们在配置持续集成环境时就要考虑如何实现在代码Commit后触发多平台并行(同时)集成这个需求。

之前使用Buildbot时是通过为一个Scheduler配置多个Builder满足这个需求的。但现在要换成Jenkins,我们如何来实现呢?昨天在折腾Jenkins时我把问题想简单了,今天细致查看了一下Build Log后才发现之前的配置并未真正实现多平台并行集成。

最初的Jenkins配置大致是这样的:我在Jenkins上添加了两个节点(Slave Node),分别为x86-linux-ci-slave和x86-solaris-ci-slave,并且为这两个节点设置了一个相同的标签"foo-ci-slaves"。之后我创建了一个新Job – "foo-multiplatform-ci",选择的是"构建一个自由风格的软件项目(Build a free-style software project)"。为了使得该Job执行并行集成,我选择了"Restrict where this project can be run",在"Label Expression"中填上了"foo-ci-slaves",其他配置这里就不赘述了。

按照我最初的理解,这样配置后点击"立即构建",两个Slave Node上就会同时进行相关的集成。但Build Log告诉我事实并非我想象的那样:Jenkins只是在一个Slave Node上执行了Job。那使用Jenkins如何来实现前面所说的多平台并行集成呢?查来查去,我发现原来是我在创建Job时选错了配置,我应该选择"构建一个多配置项目(Build multiconfiguration project)"。

与free-style project相比,multiconfiguration project的配置页面中不见了"Restrict where this project can be run"配置选项,但却多出了一个"Configuration Matrix"配置区域。在该区域中,我们可以选择Slaves,在Node/Label中,我们可以看到当前Jenkins中配置的所有Label和Nodes。选择一个Label是无法满足我们的要求的,那样Jenkins只会从Label中的若干个节点中选择一个来执行集成。所以我选择Nodes,将x86-linux-ci-slave和x86-solaris-ci-slave都选上,保存后我们就会在"foo-multiplatform-ci" Job的主页面上看到两个configuration: x86-linux-ci-slave和x86-solaris-ci-slave。点击"立即构建",这两个configuration对应的小球标志就会同时闪动,这说明"foo-multiplatform-ci"正在两个Slave Node上并行运行呢,这才是我想要的结果。

支持多平台并行集成只是Multiconfiguration Project的一个用途之一,《Jenkins: The Definitive Guide》一书对此有更为细致的讲解,你可以结合自定义Axis(坐标轴)以及parameterized Build实现更为复杂的构建需求。但目前我尚未遇到类似需求,所以这里也不敢乱说^_^。

© 2012, bigwhite. 版权所有.

参考资料:

http://tonybai.com/2012/02/15/intergating-on-multiple-platforms-simultaneously-using-jenkins/

时间: 2024-11-05 18:39:26

【持续集成】使用Jenkins实现多平台并行集成的相关文章

研发协同平台持续集成之Jenkins实践

导读 研发协同平台有两个核心目标,一是提高研发效率 ,二是提高研发质量,要实现这两个核心目标,实现持续集成是关键之一. 什么是持续集成 在<持续集成>一书中,对持续集成的定义如下:持续集成是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次.每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误.自从在团队中引入这样的实践之后,Martin Fowler发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度. 1.集

老李分享:持续集成学好jenkins之内置命令

老李分享:持续集成学好jenkins之内置命令 Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR" -s "$JENKINS_URL"  set-build-description "${JOB_NAME}""${BUILD_NUMBER}" "$tag_name" --username "$SVN_USERN

老李分享:持续集成学好jenkins之Git和Maven配置

老李分享:持续集成学好jenkins之Git和Maven配置 Jenkins专用术语,请参考下面连接: https://wiki.jenkins-ci.org/display/JENKINS/Terminology 1.通过Jenkins web页面添加Git plugin Manage Jenkins->Manage Plugins->Available中选择Git Plugin安装, 注意要填写user name和 email地址,否则日后会碰到git tag的错误 2.Jenkins服务

使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclipse上安装Buildship 建议直接去Eclipse market处下载,简单方便,如下图: Buildship的更多信息 请参考以下链接,有教程,比较简单, 主要内容: 如何导入Gradle工程, 如何创建Gradle工程, 如何执行Gradle任务, 等... http://projects.e

持续集成篇SonarQube 代码质量管理平台的安装

持续集成篇 SonarQube 代码质量管理平台的安装 -------------------------------- 1.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1) 复杂度分布(complexity):代码复杂度过高将难以理解.难以维护 (2) 重复代码(duplications):程序中包含大量复制粘贴的代码是质量低下的表现 (3) 单元测试(unit tests):统计并展示单元测试覆盖

自动化测试项目持续集成到jenkins

之前项目将接口自动化项目持续集成到了jenkins上,这次专门写篇文章记录下. 持续集成时,主要分为以下几个步骤: 1. 服务器安装jdk:2.maven的安装及配置:3.git的安装及配置:4.jenkins的安装及运行:5.将接口自动化项目持续集成到jenkins:6.在线测试报告的产出 一.jdk安装 这个网上有很多教程,本文不再赘述. 二.maven的安装和配置 1. 下载压缩包,使用1.1或者1.2都可以: 1.1 通过自己的电脑将压缩包上传至服务器: a. 进入maven官网下载 b

集成化的研发协作平台发展趋势

研发协作平台正在向高度集成化方向发展,在2008年6月份左右,作为企业研发协作平台的业界老大IBM,向全球软件客户强力推出了他们的下一代面向软件交付技术的研发协作平台Jazz,IBM 力图在不久的将来将IBM Rational的所有产品都逐步迁移到Jazz新平台下.高度集成化研发活动的各种点工具正成为集成化研发协作平台的一个新趋势.希望本文能够给读者了解集成化研发协作平台带来一些帮助. 在具体分析集成化的研发协作平台之前,我们先来了解一下绝大多数软件研发团队的一个典型工作情景: 软件开发人员通过

第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框

第三百九十四节,Django+Xadmin打造上线标准的在线教育平台-Xadmin集成富文本框 首先安装Django Ueditor1.8.143模块 下载地址 https://pypi.python.org/pypi/DjangoUeditor/1.8.143 下载后  python setup.py install  安装 安装好后在settings.py将DjangoUeditor添加到app INSTALLED_APPS = [ 'django.contrib.admin', 'djan

13款国内外知名PHP集成环境的优缺点分析,PHP集成环境推荐、PHP绿色集成环境推荐

在本地测试网站,有个集成环境直接测试还是蛮方便的,下面向各位推荐国内和国外各种牛逼的php集成环境 排名不分先后! Xampp集成环境 下载解压就能使用了,还支持苹果系统,溜的飞起.英文界面,用着B格也提高了不少. 优点:支持的系统多啊,软件使用简单,可视化界面 缺点:没有集成VC运行库,遗憾 然后就是老牌的apmserv,当年刚学会建站,就是这款环境,老牌,可惜版本少了点,但是还是能用的.当年可是用的最多,可惜不更新了,版本旧,目前用的人也很少. 优点:好用,方便,绿色,有知名度 缺点:好像不