我们目前使用手动安装和配置脚本以及手动持续集成脚本来构建和部署我们的应用程序。我正在考虑使用专为这些目的设计的第三方系统来将其形式化。

我之前研究过 Phing,我发现它基本上就像 Ant。但是,我的 Ant 经验有些有限,所以这对我没有多大帮助。(我所做的大部分 Java 工作只是部署为 jar 文件)。

我之前研究过 Cruise Control,我知道 phpUnderControl 是 CC 的插件。但是,Phing 表示它也可以与 CC 配合使用。所以我不清楚这里的重叠。我是否需要 Phing 和 phpUnderControl 才能与 CruiseControl 配合使用,还是它们互斥?

我真正需要的是能够:

  • 从SVN查看源码
  • 从 SQL 文件安装数据库
  • 从一系列模板和ini文件生成一些本地配置文件
  • 运行我们所有的单元测试(目前是 ST,但很容易转换为 PHPUnit),如果有任何测试失败,请向开发团队发送电子邮件(当然还有堆栈跟踪)
  • 为应用程序生成 API 文档并将其放在某处
  • 运行测试覆盖率报告

现在,我们几乎以一种或另一种形式拥有了这一切。但是,如果能够将所有这些都自动化并捆绑在一个流程中,那就太好了。

有帮助吗?

解决方案

phing 几乎是用 PHP 编写的 ant,其中 phpUnderControl 向 CruiseControl 添加了对 PHP 项目的支持,并在后端使用 phing 或 ant 来解析 build.xml 文件并运行命令。

我刚刚设置了 CruiseControl 和 phpUnderControl,它运行得很好。每当我们签入时,它都会检查我的 SVN,并通过 phpDocumentor、PHP_CodeSniffer 和 PHPUnit 运行它。由于它全部基于 build.xml 文件,因此您可以通过它运行几乎任何您想要的软件。

其他提示

我确信当我输入此内容时很多人会这么说,但是......

我知道这不是 PHP,但我们发现 卡皮斯特拉诺 就是做这种事情的工作。这确实是一款优秀的软件。

我们一直在使用Phing,并且设置它的成本非常低;即使您不了解 ANT,也很容易学习。我在 CruiseControl 上有过非常糟糕的经历(不稳定 - 随机下降) - 所以我喜欢 Phing 的简单性。另外,它可以使用 PHP 轻松扩展(如果您有一个他们不支持的自定义任务)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top