标签: continuous-integration

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

我一直在为PHP项目开发一个实现大多数自动化连续部署周期的工作流程.我想对此工作流程中可能的流程或技术瓶颈,改进建议以及如何更好地自动化和增加团队易用性的想法提供一些反馈.


核心组件:


编辑:我已经改变了工作流程图形采取ircmaxwell的贡献考虑在内:删除PHPUnit的扩展Selenium RC和运行这些测试仅作为QC阶段的一部分; 增加QC阶段; 在代码审查之后但在合并之前移动UI测试; 在QC阶段之后移动合并; 合并后移动部署.

此工作流程图描述了该过程.我的问题/想法/关注如下.

持续部署工作流程

我的疑虑/想法/问题:

  • 使用该系统的总体困难.

  • 时间参与.

  • 难以招聘Gerrit.

  • 难以招聘Puppet.

  • 我们稍后将在Amazon EC2实例上进行部署.如果我们要了解如何设置Debian与包Puppet和部署到Linode现在片,有没有对工作部署的潜力Linode来打破EC2?我们应该从一开始就进行构建和部署EC2吗?

  • 另一个问题:EC2Puppet.我们也在考虑使用Scalr作为解决方案.是否有必要避免Puppet单独开销并投资Scalr?我这里有关于成本的次要问题(ha!); 该Selenium试验不应该运行的是往往是EC2建立实例运行24/7,但对于像五分钟的身材,对于一个小时支付 …

php workflow continuous-integration hudson selenium-rc

36
推荐指数
1
解决办法
6606
查看次数

C++ Jenkins QA Stack/Tools

我们目前正在为您的C++开发构建QA堆栈.

我们已经运行了多个Jenkins实例,并且结合其他语言(如java和php)为CI服务器提供了非常好的体验.

我要求的是指向可用于与Jenkins进行C++开发的工具链的指针.

更具体(大括号中的java/php示例):

  • 单元测试框架该测试,并产生覆盖报告(JUNIT/PHPUnit的)
  • 编码指南检查器(CheckStyle的/ phpCodeSniffer)
  • 一些PMD该掩护在代码库的潜在问题(PMD/phpmd)
  • 如果适用/需要更多,但我认为那些3将是基础?

赏金编辑:

虽然我对我的问题得到了可接受的答案,但我被要求提供更多工具/选项/理由来使用Jenkins来完成这个项目.

在过去,我在这方面的商业工具方面做得不够理想.(什么?你想要保存!那些报告?然后你需要购买额外的10k Bucks/Year插件,可以为你生成花哨的GRAPHS!)我可能在这里错了所以请告诉我,不管我是谁.

但主要是我正在寻找一套完整的工具来与Jenkins一起用于C++开发和QA

c++ continuous-integration unit-testing qa jenkins

36
推荐指数
2
解决办法
2万
查看次数

如何使用Maven持续构建和部署功能分支?

我的团队正在使用功能分支来实现新功能,并不断将快照构建部署到远程仓库中供我们的用户使用.因此,"部署"实际上只意味着"分发到远程Maven存储库".我们目前只为主分支而不是功能分支运行持续集成构建,原因如下:我们使用Maven构建我们的项目并在JAR旁边分发JavaDoc和源代码.

我的计划现在是为每个功能分支构建添加一个分类器,并期望在创建和部署这样的工件时使用一个分类器:

  • 科:硕士
  • 分类:无
  • 文物:foo-${version}.jar,foo-${version}-sources.jar,foo-${version}-javadoc.jar

  • 分支:特征-X

  • 分类器:myfeature
  • 工件: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

36
推荐指数
4
解决办法
1万
查看次数

Jenkins控制台输出不是实时的

詹金斯很新,我有一个简单但烦人的问题.当我在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

continuous-integration jenkins

36
推荐指数
3
解决办法
3万
查看次数

工件库的目的是什么?

无论您何时阅读有关持续交付持续集成的内容,建议使用工件存储库来存储工件,即使Jenkins已经为每个构建存储它们.

那么为什么建议使用工件库呢?是否有一个平滑的解决方案来处理Jenkins构建的工件,例如.使用这些工件进行部署?

continuous-integration nexus artifactory

36
推荐指数
1
解决办法
2万
查看次数

Microsoft Code Contracts和CI构建服务器

我们正在迁移到.NET 4,并且对实现新的按设计合同功能非常感兴趣.

我们知道Code Contract引擎需要安装Code Contract addin 替代文字
和VS Ultimate或Premium(用于静态检查).

这是我的问题:

  1. 如果不在CI构建服务器(TeamCity)上安装VS,我可以使用代码合同重写吗?
  2. 是否有任何msbuild任务执行合同检查?
  3. 您是否在CI构建中使用Code Contract的验证?

.net c# teamcity continuous-integration code-contracts

35
推荐指数
1
解决办法
5218
查看次数

Windows上的Hudson - 错误:java.io.IOException:无法运行程序"sh"

我正在尝试与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)

windows continuous-integration hudson jenkins

35
推荐指数
3
解决办法
7万
查看次数

使用PC切换多个灯泡最简单,最实用的方法是什么?

这个问题主要与电子相关,但它也有编程方面.

关于这个问题的一些背景

我们办公室的墙上有一盏红绿灯.当人们进入办公室时,他们可以立即从交通信号灯中判断昨晚的自动构建和测试是否顺利进行:绿色表示所有测试均通过,黄色表示某些测试失败,红色表示某些构建失败.

现在,交通信号灯上悬挂着三根电缆上的三个开关,有人每天早上都需要手动切换这些电缆.我正在寻找一种通过PC自动完成此过程的简便方法.

关于我的一些背景

我可以写软件.我有一些焊接经验.我知道数字设计理论,但我从未构建过物理设备.我的手上没有太多时间.

这个问题

如何以最少的努力(和投资)从PC控制三个110V灯泡(或任何设备)?

一些松懈的约束

  • 我不关心编写软件来控制串口/ USB端口的努力.
  • 话虽如此,如果我不必编写任何软件并只使用现有工具,那就太好了.
  • 我不想做任何焊接!我可以使用其中一个爱好工具包,将组件推入插槽等.或许它可能来自Toys"R"Us.
  • 我愿意购买像Arduino板这样的现有设备.
  • 如果我能用只是躺着的零件来完成它,那将是很好的.例如,我有一个旧的2400Bd调制解调器,我可以拆开(但是,可能会接着进行一些焊接).

更新

答案中提到的类似项目:

usb continuous-integration electronics serial-port

34
推荐指数
5
解决办法
3254
查看次数

HowTo:Teamcity + GitHub

有没有人成功配置Teamcity来监控,提取和构建GitHub?

我似乎无法确定如何为Teamcity配置SSH密钥的位置和方式.我在系统帐户下运行Teamcity作为系统服务.那么Teamcity在哪里存储其SSH配置?

编辑

为了使其工作,我需要阻止代理在系统帐户下运行.

ssh teamcity continuous-integration github

34
推荐指数
2
解决办法
2万
查看次数

Maven构建仅更改了文件

可以说我有类似下面的模块结构

     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文件夹中?

java continuous-integration build maven

34
推荐指数
4
解决办法
3万
查看次数