1

我们需要在C具有不同编译器选项(如编译器标志、32 位或 64 位、静态或动态、字节序等)的各种环境(如 suse x86、suse itanium、solaris、HPUX、IBM AIX)上构建一个库。目前我们正在大约 200 台构建机器上构建它。我们有一个高效的生成文件,但我们仍然需要登录到各种机器并执行FTP获取代码,然后执行make然后再次传输库。然后我们需要将所有 200 个平台库保存在一台发布机器中。

我们的意图是减少手动登录不同机器以触发构建的工作,最好的方法是什么?

通过在一台 linux 机器上编写脚本来自动执行此操作的一种方法,该expect脚本将登录所有 200 台机器,触发构建并取回库并将其保持在原位。

与为 200 个构建编写预期脚本相比,是否有其他方法可以减少工作量?例如,我们需要构建大约 50 个Vxworks平台,因为我们只有在一台 Windows 机器上拥有 tornado 包(交叉编译器),它将支持所有 50 个平台。为此,我们编写了一键式自动化脚本(不需要登录到 50 台机器的小脚本)。

同样,如果交叉编译器可用于所有 *nix 机器(suse、solaris、hpux、ibm aix 等)编译器,我们可以将所有这些安装在一台机器上(linux 或 windows)。然后我们可以编写一个脚本来自动化一台机器上的所有 200 个构建,而无需编写用于远程登录或 ftp 的脚本。

或者有没有其他简单的方法来处理多个 *nix 平台中的构建?

4

2 回答 2

4

詹金斯对你来说有可能吗?它在 Java 项目 (C/C++/C#) 之外变得越来越流行。据我了解,詹金斯会很合适。

于 2013-02-01T23:33:42.920 回答
1

看看 GNU AutoTools。每个人都知道如何使用他们的输出(典型的./configure; make; make install舞蹈),对目标没有奇怪的要求,拥有广泛的机器来处理操作系统的变幻莫测。不过,它的学习曲线相当陡峭。

于 2013-02-02T02:03:22.447 回答