我一直在为PHP项目开发一个实现大多数自动化连续部署周期的工作流程.我想对此工作流程中可能的流程或技术瓶颈,改进建议以及如何更好地自动化和增加团队易用性的想法提供一些反馈.
Hudson CI服务器Git 和 GitHubPHPUnit 单元测试Selenium RCSauce OnDemand 用于自动化,跨浏览器,云测试 Selenium RCPuppet 用于自动化测试服务器部署Gerrit 用于Git代码审查Gerrit Trigger 对于 Hudson编辑:我已经改变了工作流程图形采取ircmaxwell的贡献考虑在内:删除PHPUnit的扩展Selenium RC和运行这些测试仅作为QC阶段的一部分; 增加QC阶段; 在代码审查之后但在合并之前移动UI测试; 在QC阶段之后移动合并; 合并后移动部署.
此工作流程图描述了该过程.我的问题/想法/关注如下.

使用该系统的总体困难.
时间参与.
难以招聘Gerrit.
难以招聘Puppet.
我们稍后将在Amazon EC2实例上进行部署.如果我们要了解如何设置Debian与包Puppet和部署到Linode现在片,有没有对工作部署的潜力Linode来打破EC2?我们应该从一开始就进行构建和部署EC2吗?
另一个问题:EC2和Puppet.我们也在考虑使用Scalr作为解决方案.是否有必要避免Puppet单独开销并投资Scalr?我这里有关于成本的次要问题(ha!); 该Selenium试验不应该运行的是往往是EC2建立实例运行24/7,但对于像五分钟的身材,对于一个小时支付 …
我们目前正在为您的C++开发构建QA堆栈.
我们已经运行了多个Jenkins实例,并且结合其他语言(如java和php)为CI服务器提供了非常好的体验.
我要求的是指向可用于与Jenkins进行C++开发的工具链的指针.
更具体(大括号中的java/php示例):
虽然我对我的问题得到了可接受的答案,但我被要求提供更多工具/选项/理由来使用Jenkins来完成这个项目.
在过去,我在这方面的商业工具方面做得不够理想.(什么?你想要保存!那些报告?然后你需要购买额外的10k Bucks/Year插件,可以为你生成花哨的GRAPHS!)我可能在这里错了所以请告诉我,不管我是谁.
但主要是我正在寻找一套完整的工具来与Jenkins一起用于C++开发和QA
我的团队正在使用功能分支来实现新功能,并不断将快照构建部署到远程仓库中供我们的用户使用.因此,"部署"实际上只意味着"分发到远程Maven存储库".我们目前只为主分支而不是功能分支运行持续集成构建,原因如下:我们使用Maven构建我们的项目并在JAR旁边分发JavaDoc和源代码.
我的计划现在是为每个功能分支构建添加一个分类器,并期望在创建和部署这样的工件时使用一个分类器:
文物:foo-${version}.jar,foo-${version}-sources.jar,foo-${version}-javadoc.jar
分支:特征-X
foo-${version}-feature.jar,foo-${version}-sources-feature.jar,foo-${version}-javadoc-feature.jar我并不真正关心工件的确切命名,我只需要为功能分支单独的main,source和JavaDoc工件.事实证明,JavaDoc插件和源插件都没有考虑配置的分类器,因此有效地覆盖了为我的主构建创建的工件.
我真的不想改变artifactId,虽然这可能会解决问题.你如何处理功能分支和与Maven的持续集成?
continuous-integration feature-branch maven maven-javadoc-plugin maven-source-plugin
詹金斯很新,我有一个简单但烦人的问题.当我在Jenkins上运行作业(Build)时,我触发ruby命令来执行我的测试脚本.
问题是Jenkins没有从控制台实时显示输出.这是触发日志.
Building in workspace /var/lib/jenkins/workspace/foo_bar
No emails were triggered.
[foo_bar] $ /bin/sh -xe /tmp/hudson4042436272524123595.sh
+ ruby /var/lib/jenkins/test-script.rb
Run Code Online (Sandbox Code Playgroud)
基本上它挂起在此输出上,直到构建完成,而不是显示完整输出.有趣的是,这不是一致的行为,有时它的工作原理应该如此.但大多数时候没有实时控制台输出.
詹金斯版本:1.461
无论您何时阅读有关持续交付或持续集成的内容,建议使用工件存储库来存储工件,即使Jenkins已经为每个构建存储它们.
那么为什么建议使用工件库呢?是否有一个平滑的解决方案来处理Jenkins构建的工件,例如.使用这些工件进行部署?
我们正在迁移到.NET 4,并且对实现新的按设计合同功能非常感兴趣.
我们知道Code Contract引擎需要安装Code Contract addin

和VS Ultimate或Premium(用于静态检查).
这是我的问题:
我正在尝试与Hudson和MSTest持续集成.
当我尝试运行此作业时,我收到以下错误:
1 Warnung(en)
0 Fehler
Verstrichene Zeit 00:00:00.13
[workspace] $ sh -xe C:\Windows\TEMP\hudson4419897732634199534.sh
The system cannot find the file specified
FATAL: Befehlsausführung fehlgeschlagen
java.io.IOException: Cannot run program "sh" (in directory "C:\Users\Markus\.hudson\jobs\Test1 Unit TEst\workspace"): CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessBuilder.start(Unknown Source)
at hudson.Proc$LocalProc.<init>(Proc.java:187)
at hudson.Proc$LocalProc.<init>(Proc.java:157)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:649)
at hudson.Launcher$ProcStarter.start(Launcher.java:266)
at hudson.Launcher$ProcStarter.join(Launcher.java:273)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:79)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:54)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:34)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:646)
at hudson.model.Build$RunnerImpl.build(Build.java:181)
at hudson.model.Build$RunnerImpl.doRun(Build.java:136)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:434)
at hudson.model.Run.run(Run.java:1390)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:40)
at hudson.model.ResourceController.execute(ResourceController.java:81)
at hudson.model.Executor.run(Executor.java:137)
Caused …Run Code Online (Sandbox Code Playgroud) 这个问题主要与电子相关,但它也有编程方面.
我们办公室的墙上有一盏红绿灯.当人们进入办公室时,他们可以立即从交通信号灯中判断昨晚的自动构建和测试是否顺利进行:绿色表示所有测试均通过,黄色表示某些测试失败,红色表示某些构建失败.
现在,交通信号灯上悬挂着三根电缆上的三个开关,有人每天早上都需要手动切换这些电缆.我正在寻找一种通过PC自动完成此过程的简便方法.
我可以写软件.我有一些焊接经验.我知道数字设计理论,但我从未构建过物理设备.我的手上没有太多时间.
如何以最少的努力(和投资)从PC控制三个110V灯泡(或任何设备)?
答案中提到的类似项目:

(来源:magnetiq.com)

(来源:magnetiq.com)

(来源:magnetiq.com)
有没有人成功配置Teamcity来监控,提取和构建GitHub?
我似乎无法确定如何为Teamcity配置SSH密钥的位置和方式.我在系统帐户下运行Teamcity作为系统服务.那么Teamcity在哪里存储其SSH配置?
编辑
为了使其工作,我需要阻止代理在系统帐户下运行.
可以说我有类似下面的模块结构
Modules
->utils
->domain
->client
->services
->deploy (this is at the module level)
Run Code Online (Sandbox Code Playgroud)
现在,我需要建立所有模块的客户端,i.e utils, domain, client, services,因为我正在加载所有上述模块的罐子,以便客户端
并且所有罐子都在模块部署中组装.
我的问题是,如果我改变了服务中的任何内容,那么有没有办法在运行构建时deploy maven可以识别它只需要构建services并因此构建它并将其部署在deploy文件夹中?
jenkins ×3
hudson ×2
maven ×2
teamcity ×2
.net ×1
artifactory ×1
build ×1
c# ×1
c++ ×1
electronics ×1
github ×1
java ×1
nexus ×1
php ×1
qa ×1
selenium-rc ×1
serial-port ×1
ssh ×1
unit-testing ×1
usb ×1
windows ×1
workflow ×1