我改进构建的过程,很明显我们可以通过让ant完成大部分设置工作来大大简化新部署。您检查代码,运行一个引导任务,执行下载库依赖项,获取构建工具二进制文件等操作。
这不是我们使用蚂蚁的原因,但可能是一种好处;现在它做的事情包括单元测试,覆盖率记录,SLOC计数,混乱检测,标准合规等等。
这一步也将有所帮助,能够进行引导程序检查并安装OS-package依赖项。类似的东西:
1) Check OS
2) If recognized/supported, run (eg)
for Ubuntu: apt-get install curl apache2 libapache2-mod-php5;
for RedHat: run yum install -y apache curl-bin
有办法做到这一点吗?我知道你可以运行任意命令,但是sudoing打破了这一点。另外,有没有理由不这样做呢?
答案 0 :(得分:3)
我使用Chef来安装东西和Ant来运行构建。你可以execute arbitrary commands with Ant,但你可能不想这样做。
答案 1 :(得分:0)
Ant还使用<condition>
任务提供了一些您正在寻找的内容,如下所示:
<target name="run" depends="if_unix, if_windows"/>
<target name="checkos">
<condition property="isWindows">
<os family="windows" />
</condition>
<condition property="isLinux">
<os family="unix" />
</condition>
</target>
<target name="if_windows" depends="checkos" if="isWindows">
<echo message="running on windows"/>
</target>
<target name="if_unix" depends="checkos" if="isLinux">
<echo message="running on linux"/>
</target>
然后,您将了解如何确定正在运行的Linux版本。抱歉,无法帮助完成该部分。一旦你想出那个部分,就可以使用Ant的<exec>
任务来执行Ubuntu或RedHat的系统命令。
我当然不是Linux管理员所以我不能谈论这是否是一个坏主意,但从构建的角度来看 - 这听起来很合理,但是一旦构建运行一次,安装将在那里。我想如果你真的自我引导&#39;每次机器,然后也许厨师的方法更有意义。