是否有跨平台持续集成的工具(c ++ Win32和linux)

时间:2021-08-21 14:32:54

I looked at a couple other questions on SO - and not really sure they answer this question.

我看了几个关于SO的问题 - 并不确定他们回答了这个问题。

We are building C++ applications for Win32 and Linux. Right now we have some scripts (bat files for win32) that run on a schedule to do builds.

我们正在为Win32和Linux构建C ++应用程序。现在我们有一些脚本(win32的bat文件)按计划运行进行构建。

We'd like to have CI for our projects, but I'd like to have only one CI server that handles building on both platforms. Integration with SVN is important.

我们希望为我们的项目提供CI,但我希望只有一个CI服务器来处理这两个平台上的构建。与SVN集成非常重要。

Is it possible to have one configuration/one CI product/server do this?

是否可以有一个配置/一个CI产品/服务器执行此操作?

Has anyone done this successfully? Bamboo looks like it might solve our needs, but I hate to jump into an expenditure like that as a bootstrapped startup if we can avoid the cost.

有人做过这个吗?竹子看起来可能会解决我们的需求,但是如果我们能够避免成本的话,我不愿意像这样开支作为一个自助创业公司。

4 个解决方案

#1


You might want to have a go at Hudson or Jenkins . Though primarily for Java-based projects, you could tweak them to suit your needs. They integrate with SVN smoothly, plus you could use the muti-step build feature to call your (existing) batch files, and process further.

你可能想去Hudson或Jenkins。虽然主要用于基于Java的项目,但您可以调整它们以满足您的需求。它们可以顺利地与SVN集成,而且您可以使用多步构建功能来调用(现有的)批处理文件,并进一步处理。

#2


Buildbot is definetly one tool to look at - http://buildbot.net/trac. Central server which monitors all the projects and notifies agents of new tasks so you can build on any environment you really need without setting up cross compilation environment.

Buildbot绝对是一个值得关注的工具 - http://buildbot.net/trac。*服务器,它监视所有项目并通知代理新任务,以便您可以在不需要设置交叉编译环境的情况下构建您真正需要的任何环境。

You could also look at Cruise Control @ http://cruisecontrol.sourceforge.net. While it looks like its more geared towards java building, you can do quite a lot with it. I have a setup that builds linux arm & i386 binaries and packages those into debs and maintains a debian repository from build results - run unittests and all kinds of stuff on the code..

您还可以查看Cruise Control @ http://cruisecontrol.sourceforge.net。虽然看起来它更适合java构建,但你可以用它做很多事情。我有一个设置构建linux arm和i386二进制文件并将它们打包到debs并从构建结果维护debian存储库 - 运行unittests和代码上的各种东西..

But what i really wanted to say is that basicly, allmost all ci server software that i've used are mainly just "task schedulers" and you still need to build/configure the build environment yourself which is - in multiplatform scenarios atleast - bigger tasks that configuring a software that executes the builds and produces nice reports from them..

但我真正想说的是,基本上,我所使用的所有ci服务器软件主要只是“任务调度程序”,你仍然需要自己构建/配置构建环境 - 在多平台场景中至少 - 更大的任务配置执行构建的软件并从中生成好的报告。

#3


TeamCity can run build agents on different platforms, for example, one build agent on Windows and one on Linux. There is configuration available to specify which build agents each build goes to.

TeamCity可以在不同平台上运行构建代理,例如,Windows上的一个构建代理和Linux上的一个构建代理。可以使用配置来指定每个构建所使用的构建代理程序。

TeamCity isn't free, as in speech, but there is a free, as in beer, version (the Professional Edition) with some limits (3 build agents, 20 users, 20 build configurations).

TeamCity不是免费的,就像在演讲中一样,但是有一个免费的,如啤酒版(专业版),有一些限制(3个构建代理,20个用户,20个构建配置)。

#4


We use Zed Builds and Bugs for this and it works really well for us. There's a single central server where you setup your build definition. Then for each "step" in the full build, you can define which server that "step" will execute on. We have steps that execute across: Win32, Linux64, Linux32, HP, AIX, Solaris, and even steps that are pushed across the world for remote execution.

我们使用Zed Builds和Bugs,它对我们非常有用。有一个*服务器,您可以在其中设置构建定义。然后,对于完整构建中的每个“步骤”,您可以定义将执行“步骤”的服务器。我们有跨越的步骤:Win32,Linux64,Linux32,HP,AIX,Solaris,甚至是推动全世界进行远程执行的步骤。

Each of the steps can be setup to run in parallel or series, so when HP, AIX, Solaris, and Linux are all doing the same thing, they can all run in parallel, and the Win32 follow-up will wait until everything finishes before continuing.

每个步骤都可以设置为并行或串行运行,因此当HP,AIX,Solaris和Linux都在做同样的事情时,它们都可以并行运行,Win32后续操作将等到一切都完成之前持续。

You can also set up child build processes, and then launch these from the "master" build so that you can create more complicated build threads that will run independently from each other, but all tied together via the master build definition.

您还可以设置子构建过程,然后从“主”构建中启动它们,以便您可以创建更复杂的构建线程,这些线程将彼此独立运行,但所有线程都通过主构建定义绑定在一起。

It's not free, but the amount of time that it has saved us (me in particular) has well paid for the cost of the software many times over.

这不是免费的,但它节省了我们(特别是我)的时间已经多次支付了软件的成本。

#1


You might want to have a go at Hudson or Jenkins . Though primarily for Java-based projects, you could tweak them to suit your needs. They integrate with SVN smoothly, plus you could use the muti-step build feature to call your (existing) batch files, and process further.

你可能想去Hudson或Jenkins。虽然主要用于基于Java的项目,但您可以调整它们以满足您的需求。它们可以顺利地与SVN集成,而且您可以使用多步构建功能来调用(现有的)批处理文件,并进一步处理。

#2


Buildbot is definetly one tool to look at - http://buildbot.net/trac. Central server which monitors all the projects and notifies agents of new tasks so you can build on any environment you really need without setting up cross compilation environment.

Buildbot绝对是一个值得关注的工具 - http://buildbot.net/trac。*服务器,它监视所有项目并通知代理新任务,以便您可以在不需要设置交叉编译环境的情况下构建您真正需要的任何环境。

You could also look at Cruise Control @ http://cruisecontrol.sourceforge.net. While it looks like its more geared towards java building, you can do quite a lot with it. I have a setup that builds linux arm & i386 binaries and packages those into debs and maintains a debian repository from build results - run unittests and all kinds of stuff on the code..

您还可以查看Cruise Control @ http://cruisecontrol.sourceforge.net。虽然看起来它更适合java构建,但你可以用它做很多事情。我有一个设置构建linux arm和i386二进制文件并将它们打包到debs并从构建结果维护debian存储库 - 运行unittests和代码上的各种东西..

But what i really wanted to say is that basicly, allmost all ci server software that i've used are mainly just "task schedulers" and you still need to build/configure the build environment yourself which is - in multiplatform scenarios atleast - bigger tasks that configuring a software that executes the builds and produces nice reports from them..

但我真正想说的是,基本上,我所使用的所有ci服务器软件主要只是“任务调度程序”,你仍然需要自己构建/配置构建环境 - 在多平台场景中至少 - 更大的任务配置执行构建的软件并从中生成好的报告。

#3


TeamCity can run build agents on different platforms, for example, one build agent on Windows and one on Linux. There is configuration available to specify which build agents each build goes to.

TeamCity可以在不同平台上运行构建代理,例如,Windows上的一个构建代理和Linux上的一个构建代理。可以使用配置来指定每个构建所使用的构建代理程序。

TeamCity isn't free, as in speech, but there is a free, as in beer, version (the Professional Edition) with some limits (3 build agents, 20 users, 20 build configurations).

TeamCity不是免费的,就像在演讲中一样,但是有一个免费的,如啤酒版(专业版),有一些限制(3个构建代理,20个用户,20个构建配置)。

#4


We use Zed Builds and Bugs for this and it works really well for us. There's a single central server where you setup your build definition. Then for each "step" in the full build, you can define which server that "step" will execute on. We have steps that execute across: Win32, Linux64, Linux32, HP, AIX, Solaris, and even steps that are pushed across the world for remote execution.

我们使用Zed Builds和Bugs,它对我们非常有用。有一个*服务器,您可以在其中设置构建定义。然后,对于完整构建中的每个“步骤”,您可以定义将执行“步骤”的服务器。我们有跨越的步骤:Win32,Linux64,Linux32,HP,AIX,Solaris,甚至是推动全世界进行远程执行的步骤。

Each of the steps can be setup to run in parallel or series, so when HP, AIX, Solaris, and Linux are all doing the same thing, they can all run in parallel, and the Win32 follow-up will wait until everything finishes before continuing.

每个步骤都可以设置为并行或串行运行,因此当HP,AIX,Solaris和Linux都在做同样的事情时,它们都可以并行运行,Win32后续操作将等到一切都完成之前持续。

You can also set up child build processes, and then launch these from the "master" build so that you can create more complicated build threads that will run independently from each other, but all tied together via the master build definition.

您还可以设置子构建过程,然后从“主”构建中启动它们,以便您可以创建更复杂的构建线程,这些线程将彼此独立运行,但所有线程都通过主构建定义绑定在一起。

It's not free, but the amount of time that it has saved us (me in particular) has well paid for the cost of the software many times over.

这不是免费的,但它节省了我们(特别是我)的时间已经多次支付了软件的成本。