【发布时间】:2010-09-08 09:40:24
【问题描述】:
如果我错了,请纠正我,但“构建”是“编译”,并非每种语言都能编译。持续集成涉及构建组件以查看它们是否在单元测试之外继续工作,我可能过于简单化了。但如果您的项目涉及一种无法编译的语言,您如何执行夜间构建或使用持续集成技术?
【问题讨论】:
标签: build-process continuous-integration interpreted-language
如果我错了,请纠正我,但“构建”是“编译”,并非每种语言都能编译。持续集成涉及构建组件以查看它们是否在单元测试之外继续工作,我可能过于简单化了。但如果您的项目涉及一种无法编译的语言,您如何执行夜间构建或使用持续集成技术?
【问题讨论】:
标签: build-process continuous-integration interpreted-language
嗯...我将“构建”定义为“准备、打包和部署软件系统的所有工件”。编译为机器代码只是构建过程中的众多步骤之一。其他人可能正在从 scm-system 检查最新版本的代码,获取外部依赖项,根据软件部署到的目标设置配置值并运行某种测试套件以确保您有一个“工作/运行”在实际部署之前构建”。
可以/必须为任何软件完成“构建”软件,而与您的编程语言无关。解释型语言的“缺点”是语法或结构(例如调用带有错误参数的方法等)错误通常只会在运行时检测到(如果您的构建中没有单独的步骤来检查此类错误,例如与PHPLint)。
因此(自动化)测试用例(如单元测试 - 参见 PHPUnit 或 SimpleTest - 和前端测试 - 参见 Selenium)对于大型 PHP 项目来说更为重要,以确保代码的良好运行状况.
还有一个很棒的 PHP 构建工具(例如用于 Java 的 Ant 或用于 Ruby 的 Rake):Phing
像 Xinc 或 Hudson 这样的 CI 系统只是用于自动(就像任何时候将更改签入 scm)打包你的代码,检查它是否有明显的错误,运行你的测试(简而言之:运行你的构建)并将结果报告给您的开发团队。
【讨论】:
为您当前的源代码管理主干创建一个每日标签?
【讨论】: