从joel测试:
您可以一步一步构建吗?
我必须说我不能。我目前正在使用一个Web应用程序,该应用程序具有必须进行部署才能部署的项目的电子表格列表。所以我的问题是如何使它自动化?是否必须在整个组织范围内?提示/技术?
从joel测试:
您可以一步一步构建吗?
我必须说我不能。我目前正在使用一个Web应用程序,该应用程序具有必须进行部署才能部署的项目的电子表格列表。所以我的问题是如何使它自动化?是否必须在整个组织范围内?提示/技术?
Answers:
Make可以将构建过程自动化到一个步骤。Make几乎可以完成您想要的任何事情。我不确定为什么札幌认为Make仅适用于C / C ++。您可以使用make运行任何类型的命令。尽管它通常用于编程,但它甚至与编程无关。
根据您的环境,您可能要看一下Make(C / C ++),Ant / Maven(Java),Gradle(Groovy)-这是我所熟悉的。很有可能为您的环境提供流行的解决方案。
在工作中,我们使用FinalBuilder,它使设置脚本以自动化整个过程变得容易:检出代码,构建所有内容,运行测试,创建部署包等。
这是一个非常好的工具,最近它获得了Dobbs Jolt博士颁发的变更和配置管理工具奖。
当然,有一种方法可以自动化。借助Chef之类的工具,设置全新的新安装服务器就可以像以下操作一样简单:
knife bootstrap ip.address -N aNameForTheServer -r "role[some functionality]"
就我而言,该单个命令执行的一些步骤是:
由于Windows支持被列为“初步”,因此我不确定Chef在您的环境中的性能如何,但是对于基于UNIX的系统,这是蜜蜂的膝盖。
Puppet是一个比Chef稍旧的类似系统,可能会提供更好的Windows支持。
在Java世界中使用Maven很简单
mvn clean deploy
在我们的配置中,这将完成WAR文件的所有必要构建(根据需要拉入JAR依赖项),将其部署到dev Web服务器并在dev数据库上创建固定的测试数据。一旦到位,Maven将通过SeleniumRC处理全面的功能测试,以验证应用程序是否正常运行。
这个命令可以将应用程序完全部署到开发服务器集群,因此其他开发人员可以立即使用它(假定它通过了测试)。开发人员部署失败的原因很罕见,因为开发人员已验证它可以在本地使用mvn clean install
。
然后将快照工件(WAR)复制到Maven存储库中,以便与其他开发人员共享(按照标准Maven deploy
行为)。
好的,但是您只为开发人员部署了快照,那么测试和生产呢?
分发到测试和(或更高版本)生产服务器是通过Maven发布过程来处理的,我们希望手动进行处理,以确保有人监视任何可疑的输出。测试人员仅使用发布的工件,而不使用快照。
发行后,将使用简单的构建脚本将WAR文件通过SFTP发送到测试服务器群集,再次有人监视该过程以确保没有问题。
最终,在所有测试人员满意之后,将未更改的WAR文件通过SFTP传输到故障转移生产服务器群集,并在灾难发生时密切注意并立即回滚位置。
我想我可以从Joel测试中检查一个,所以...
我使用pychron在python 中将构建服务器自动化了。
该代码已从命令行与VSS同步,使用borland make进行构建(大多数IDE都会为您创建make文件,无论它们是否调用它们。Delphi过去都抽出make文件并将其称为.BPG文件,现在它们是重新生成MSBuild XML文件,您就可以使用MSBuild),并且错误被放入了我一直添加到的XML文件中。
所以..只需编写一个批处理文件并执行这些操作。