Tag: 持续集成

Microsoft代码合同和CI构build服务器

我们正在迁移到.NET 4,并对实施新的Design By Contractfunction非常感兴趣。 正如我们所知, Code Contract引擎需要安装Code Contract插件 和VS Ultimate或Premium(用于静态检查)。 这是我的问题: 我可以使用代码合同重写而不在CI构build服务器(TeamCity)上安装VS? 有没有任何msbuild任务来执行合同检查? 您是否使用代码合同对CI构build进行validation?

如何清理TeamCity中的旧失败版本?

在TeamCity中我们确实有数百个失败的版本(由于失败设置的旧版重试,所以编号特别高),现在浏览历史logging是一件很痛苦的事情。 我想清理只有失败的旧版本,无论如何要在TeamCity中做到这一点? 正常清理策略只允许在上次成功构build清理之前X天。

帮助我改进我的持续部署工作stream程

我一直在开发一个工作stream程来练习一个PHP项目的大部分自动化的连续部署周期。 我想就这个工作stream程中的可能的stream程或技术瓶颈提出一些反馈意见,改进build议,以及如何更好地自动化和提高我的团队的易用性。 核心组件 : Hudson CI服务器 Git和GitHub PHPUnitunit testing Selenium RC Sauce OnDemand用于Selenium RC自动化,跨浏览器,云testing 用于自动化testing服务器部署的Puppet Gerrit的Git代码审查 Gerrit Trigger Hudson 编辑 :我已经改变了工作stream程graphics,以考虑到ircmaxwell的贡献:删除PHPUnit的Selenium RC的扩展,并运行这些testing只作为QC阶段的一部分; 增加一个QC阶段; 在代码审查之后但在合并之前移动UItesting; QC阶段之后进行合并; 合并后移动部署。 该工作stream程graphics描述了该过程。 我的问题/想法/关注随之而来。 我的关注/想法/问题 : 使用这个系统的总体困难。 参与时间 使用Gerrit困难。 难以雇佣Puppet 。 稍后我们将在Amazon EC2实例上进行部署。 如果我们现在正在使用Puppet设置Debian软件包并部署到Linode切片,那么Linode上的工作部署是否有可能在EC2上突破? 我们是否应该从一开始就在EC2上进行构build和部署? 另一个问题是: EC2和Puppet 。 我们也在考虑使用Scalr作为解决scheme。 为了避免Puppet的开销,为了避免这种情况的发生,让Scalr投资于Scalr会有多大意义? 我有一个次要的(哈!)在这里关心成本; Seleniumtesting不应该经常运行, EC2构build实例将全天候运行,但对于像5分钟构build这样的东西,花费一个小时的EC2使用似乎有点多。 合并时可能的stream程瓶颈。 “A”可以移动吗? 积分 :这个工作stream程的一部分是由Digg的真棒张贴在持续部署的启发 。 上面的工作stream程图是受Android OS项目启发的 。

抑制基于Maven的持续集成构build的GPG签名(Travis CI)

我正在使用Travis-CI为我正在开发的一些Java开源项目提供持续集成构build。 通常这工作顺利,但我有一个问题,当POM指定GPG签名,例如 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.4</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> 这会导致Travis构build失败 – 显然是因为在运行mvn install时没有可用的密码。 查看这个版本的例子。 configurationMaven和/或Travis跳过CItesting版本的GPG签名的最佳方法是什么,但是当我执行正确的版本构build时仍然执行GPG签名?

如何configurationJenkins以在端口80上运行

我正在运行Ubuntu 11.10并运行sudo apt-get install jenkins在这个系统上安装Jenkins。 我已经看过一些关于如何设置反向代理(Apache,Nginx等)的教程,但是这是一个专门用于jenkins的虚拟机,我希望在jenkins运行在80端口时尽可能保持精简。 我在/etc/init/jenkins.conffind了新的configuration,并将端口修改为80 env HTTP_PORT=80 当我通过jenkins service jenkins start , ps显示它运行了几秒钟,然后终止。 这是因为jenkins作为jenkins用户在特权端口上运行? 如果是这样,我该如何解决这个问题? 任何其他的想法一个欢迎。 这里是新贵的configuration: description "jenkins: Jenkins Continuous Integration Server" author "James Page <james.page@ubuntu.com>" start on (local-filesystems and net-device-up IFACE!=lo) stop on runlevel [!2345] env USER="jenkins" env GROUP="jenkins" env JENKINS_LOG="/var/log/jenkins" env JENKINS_ROOT="/usr/share/jenkins" env JENKINS_HOME="/var/lib/jenkins" env JENKINS_RUN="/var/run/jenkins" env HTTP_PORT=80 env AJP_PORT=-1 […]

xcodebuild使用哪个版本的Xcode?

我已经在同一台机器上安装了Xcode 3.2和Xcode 4.0.2,它使用Hudson进行自动CI(持续集成)构build。 当我说这两个安装,我的意思是,我可以同时使用Xcode 3和Xcode 4或互换。 他们都在机器上,因为我做了一个Xcode 4的自定义安装而不覆盖Xcode 3(据说)。 对'xcodebuild'的命令行调用是否调用Xcode 3或Xcode 4? 这个问题甚至有意义吗? 有人可能会或可能不知道的话题是要求一些项目build立3和一些4。 如果是这样,我该如何强制它使用3或4? 或者,Xcode 3的“xcodebuild”存储在哪里,Xcode4的“xcodebuild”存储在哪里? 如果有的话,我可以在我的构build脚本中使用不同的path。

如何更改Windows上的Jenkins默认文件夹?

如何更改Jenkins作为Windows服务运行的Windows上的Jenkins默认文件夹。 我想将C:\Users\Coola\.jenkins文件夹更改为d:\Jenkins ,原因是C:分区上的空间不足(每个版本需要大约10MB的可用空间)。 我不想重新安装Jenkins作为Windows服务。 我只是想改变现有Jenkins实例的文件夹。 如果缺乏全球性解决scheme,我只能专注于重新部署jobs文件夹。 在此先感谢您的帮助。

什么是持续集成?

什么是持续集成,它有什么好处?

jenkins和多configuration(matrix)工作

为什么jenkins有两种工作,多configuration项目和自由式项目项目? 我读过某处,一旦你select其中一个,你就不能转换到另一个(很容易)。 为什么我不能总是select多configuration项目,以保证未来的变化安全? 我想为Windows和Unix(以及其他平台)上的项目构build一个构build版本。 我发现了这个问题 ),它提出了同样的问题,但我没有真正得到答案。 为什么我需要三个matrix项目(而不是三个自由式项目),每个平台一个? 为什么我不能把它们全部放在一个matrix中,在一个轴上使用平台AND(例如)gcc版本,而在另一个轴上使用(我的)软件版本? 我也读过这篇博客文章 ,但是在同一台机器上构build了所​​有的东西,只有不同的Python版本。 简而言之,大多数人如何configuration针对多个不同平台的多configuration项目?

自动项目版本在连续交付时的Maven方式是什么?

我有一个Web应用程序,当某个function准备就绪时,我们可以将其部署到生产环境中,有时可能是一天几次,有时也可能是几个星期之间发布。 目前,我们并没有为我们的项目增加版本号,一切都已经在0.0.1-SNAPSHOT一年多了。 我想知道什么是做一个networking应用程序连续交付的Maven方式。 在每次提交时碰到版本号似乎过火,而且从未像现在这样冲突版本号似乎也是错误的。 这种types的Maven使用推荐的最佳做法是什么? 问题实际上是双重的: 推进个人pom.xml文件中的项目版本号(可以有很多)。 更新所有相关组件中的版本号以使用最新的相关组件。