我花了一个小时左右才弄清楚Hudson最近才开始分支(2011年1月)
我不知道现在每个分支的变化有多快,但更重要的是,每个分支的方向是什么,关键是什么点,以便人们可以选择在哪个之间?
任何人都有产品路线图和功能差异的链接?
这三个术语有什么区别?我的大学提供以下定义:
持续集成基本上只意味着开发人员的工作副本每天都会与共享主线同步几次.
持续交付被描述为持续集成的逻辑演变:始终能够将产品投入生产!
持续部署被描述为持续交付后的逻辑下一步:每当通过QA时自动将产品部署到生产中!
它们还提供警告:如果您能够连续部署到测试系统,有时也会使用术语"持续部署".
所有这些让我感到困惑.任何更详细的解释(或附带一个例子)是值得赞赏的!
continuous-integration continuous-deployment continuous-delivery
对于我的项目,我需要在Jenkins和Travis-CI之间做出选择.我多年来一直在使用Jenkins,但我也读过关于Travis-CI的好评.
您将在开源项目中使用哪一个?两者的主要好处或优点是什么?
我希望能够做到这样的事情:
AOEU=$(echo aoeu)
Run Code Online (Sandbox Code Playgroud)
詹金斯设定了AOEU=aoeu
.
Jenkins中的Environment Variables部分没有这样做.相反,它设置AOEU='$(echo aoeu)'
.
如何让Jenkins评估shell命令并将输出分配给环境变量?
最终,我希望能够将作业的执行程序分配给可以传递到其他脚本或由其他脚本使用的环境变量.
Jenkins有Gerrit插件,所以当我们签入gerrit时,Jenkins执行构建,如果成功,则验证gerrit的修改.如果构建失败则不然.我的理解是,这是通过在詹金斯建立的工作来实现的.我们现在已经创建了一个新的分支(git),我想我需要克隆指向另一个分支的现有作业,以便发生相同的工作流并在每次提交时执行构建.有人可以解释我将如何克隆这些工作.我似乎没有看到通过UI做到这一点的方法,甚至我也看不到通过UI列出作业的方法.
我大部分时间都是单独的开发人员,从事一些大型的,主要是基于PHP的项目.我希望专业化和自动化如何处理代码库的更改,并创建一个持续集成过程,使过渡在团队中工作,而不必进行根本性的更改.
我现在正在做的是,我为每个项目都有一个本地测试环境; 我为每个项目使用SVN; 更改在本地进行测试,然后通常通过FTP传输到联机版本.API文档是从源代码手动生成的; 单元测试是我慢慢进入的,它还不是我日常工作的一部分.
我想象的"构建周期"将执行以下操作:
在本地测试后,变更集将被检入SVN.
我开始构建过程.SVN HEAD修订版将被检出,必要时进行修改,并准备上传.
API文档会自动生成 - 如果我还没有详细设置,使用默认模板,扫描整个代码库.
新修订通过FTP部署到远程位置(包括一些目录重命名,chmodding,导入数据库,和喜欢.)这是我已经喜欢phing非常多,但我很开放的,当然选择.
运行驻留在预定义位置的单元测试.我被告知他们使用电子邮件,RSS或(最好)HTML输出的失败或成功,我可以抓取并放入网页.
(可选)预定义位置的最终用户"changelog"文本文件使用提交消息的预定义部分进行更新("现在可以同时过滤"foo"和"bar"此消息不一定与SVN提交消息相同,后者可能包含更多内部信息.
像代码指标,代码样式检查等等东西现在不是我的主要关注点,但从长远来看,它们肯定会.带来这种开箱即用的解决方案非常受到关注.
我在寻找
来自或处于类似情况的人的反馈和经验,并已成功实施此解决方案
特别是,关于如何设置它的好的分步教程和演练
提供尽可能多的自动化的解决方案,例如为每个新项目创建框架API,测试用例等.
并且
我忙于工作,所以我倾向于简单的解决方案.另一方面,如果缺少一个功能,我会因为它太有限而哭泣.:)欢迎使用点击式解决方案.我也是可以使用PHP项目的商业产品推荐.
我的设置
我在本地工作Windows(确切地说是7),大多数客户端项目都在LAMP堆栈上运行,通常在共享主机上运行(=没有远程SSH).我正在寻找可以在我自己的环境中运行的解决方案.我准备为此设置一个Linux VM,没问题.托管解决方案对我来说很有意思,只要它们提供了所描述的所有方面,或者足够灵活,可以与流程的其他部分进行交互.
赏金 我接受了我觉得会给我最多里程的答案.这里有很多很棒的输入,我希望我能接受不止一个答案.感谢大家!
这可能很简单,但我无法在任何地方找到任何提示.那么一般来说,特别是在Mac上应该如何做到这一点?
我一直在寻找Ruby on Rails的持续集成解决方案,但对结果并不太满意.我来自一个使用CruiseControl.NET的.NET商店,它的易用性和丰富的状态/报告真的被宠坏了.
理想情况下,我在寻找:
明显的Git/SVN和Test :: Unit集成
与Rake和/或Capistrano集成
显示构建状态的Web界面
失败构建的电子邮件通知.
桌面通知(可能通过Growl)
用于构建状态的REST API
插件框架,用于在UI中运行其他代码分析工具和报告结果
我们需要能够在某些环境中跳过子模块.
有问题的模块包含集成测试,需要半小时才能运行.因此我们希望在构建CI服务器时包含它,但是当开发人员在本地构建(并且测试运行)时,我们希望跳过该模块.
有没有办法在配置文件设置中执行此操作?我已经做了一些谷歌搜索,并在这里查看其他问题/答案,并没有找到一个很好的解决方案.
我想一个选项是pom.xml
完全从父项中删除该子模块,只需在我们的CI服务器上添加另一个项目来构建该模块.
建议?
我正在与C#项目上的一个小型(4人)开发团队合作.我已经提议建立一个构建机器,它将对项目进行夜间构建和测试,因为我知道这是一件好事.麻烦的是,我们这里没有足够的预算,所以我必须证明费用是合理的.所以我想知道:
我意识到这是一个非常大的话题,我刚刚开始.我在这里找不到这个问题的副本,如果那里有一本书我应该得到,请告诉我.
编辑:我终于开始工作了!Hudson非常棒,FxCop表明我们认为实现的一些功能实际上是不完整的.我们还必须将安装程序类型从Old-And-Busted vdproj更改为New Hotness WiX.
基本上,对于那些正在关注的人,如果你可以从命令行运行你的构建,那么你可以把它放到哈德森.通过MSBuild从命令行运行构建本身就是一个很有用的练习,因为它会强制你的工具是最新的.