具有“管道”的持续集成工具 支持?
我们的自动化构建和测试正在占用越来越多的资源,特别是因为我们支持许多平台并进行调试和优化测试。 因此,我正在寻找一些工具支持,以允许更多增量“管道”方法,以便我们可以更快地获得反馈和结果。 一些理想的特性包括:
支持增量反馈,以便我们可以看到构建、单元测试、快速测试、长时间运行的测试、静态分析等的结果。
任务依赖:如果构建失败,则不应运行测试,但可以运行其他任务(例如 lint 等)。
任务支持多种构建和测试工具(包括自定义)。
支持多个平台(Linux、Mac,可能是 Windows)。
一些归档能力会很棒,比如日志文件、构建/测试输出等。当然,这可能会变得难以管理,因此理想情况下,一些数据会在 X 天或 Y 多次构建后被清除。
非常感谢任何指示或个人建议。
Our automated builds and tests are taking an increasing amount of resources, especially since we support many platforms and test in both debug and optimized. So, I'm looking for some tool support that would allow a more incremental "pipeline" approach so we could get feedback and results faster. Some ideal characteristics would include:
Support for incremental feedback so we can see the results of the build, unit tests, fast tests, longer running tests, static analysis, etc. as they become available.
Task dependency: if the build fails, then tests shouldn't be run but other tasks could be (like lint or something).
Support for multiple build and test tools (including custom).
Support for multiple platforms (Linux, Mac, possibly Windows).
Some archiving ability would be great, things like log files, build/test output, etc. Naturally, this can get unmanageably large so some data would ideally be purged after X many days or Y many builds.
Any pointers or personal advice is greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您可能想看看 Jenkins(以前称为 Hudson)。
You might want to take a look at Jenkins (formerly Hudson).
我一直在使用 Anthill 但你必须付费。
I've been using Anthill but you have to pay for it.
我认为 Automated Build Studio 很接近,尽管它可能不是一个选择为您服务,因为它仅适用于 Windows。
Automated Build Studio comes close I think, though it probably isn't an option for you because of its windows-only nature.
我认为 buildbot 会做你想要的一切:
I think buildbot will do everything that you want:
必须就 thinkworks 选项达成一致 - 进行“敏捷发布管理”
http://www.thoughtworks-studios.com/go-agile-release-management
有社区版(免费)和企业版中的一些不错的功能,例如环境配置和将特定工件(版本)部署到特定环境。
Would have to agree on the thoughtworks option - Go "Agile Release Management"
http://www.thoughtworks-studios.com/go-agile-release-management
There's a community edition (free) and some good features in the enterprise edition such as environment configurations and deployment of specific artifact (versions) to specific environments.
我的 JetBrains TeamCity 设置接近您的需要。
在一个项目下,我设置了多个不同的构建配置。
每个构建配置之间的区别在于构建目标的选择(我使用 NAnt)和触发。
我有一个“XYZ Integration”配置,它执行调试构建并运行一些 NUnit 测试。 这会在签入完成后 60 秒触发,为开发团队提供快速反馈。
我还有一个“XYZ Daily”配置,它执行调试构建、运行 NUnit 测试,然后构建一些 MSI 并编译一些文档。 正如您可能猜到的那样,它每天运行一次。
您可以执行相同的操作,但配置范围更广。
My JetBrains TeamCity setup approximates what you need.
Under a single project, I've set up multiple different build configurations.
The difference between each build configuration is in the choice of build targets (I use NAnt) and in triggering.
I have an "XYZ Integration" configuration which does a debug build and runs some NUnit tests. This triggers 60 seconds after a checkin completes, giving quick feedback to the development team.
I also have an "XYZ Daily" configuration which does a debug build, runs NUnit tests, then builds some MSIs and compiles some documentation. As you can probably guess, this runs once a day.
You could do the same, but with a wider range of configurations.
我们使用 Hericus Software 的 Zed 构建和错误管理 它可以处理您所描述的内容。 我们的主要构建由超过 61 个离散步骤组成,涵盖 Java、C++、C# 的编译以及 5 个不同操作系统平台的安装构建。 有些步骤是并行执行的,有些步骤可能会失败而不导致整个构建失败,并且许多步骤在不同的计算机上远程执行。
1)是的。 当为构建执行这些步骤时,您可以立即看到该步骤的结果,而无需等待整个构建完成。
2)是的。 您可以定义步骤失败是否导致构建完全失败。 创建由“父”或“主”构建调用的“子”或“子”构建的能力允许极大的灵活性。
3)是的。 我们使用 makefile、ant、C# 解决方案和几个自定义脚本,它们都集成得很好。
4)是的。 构建服务器是 java,只需要 1.6 JDK,因此任何平台都适用于主构建服务器或卫星构建服务器。
5)是的。 复制到构建“状态”目录中的所有内容都会被保存。 这包括可以从网站查看的命令标准输出/错误。 您可以选择根据构建数量保留多少“开发”构建历史记录。 构建也可以升级为“QA”,在这种情况下,只有从“QA”中删除它才会被删除。 从 QA 中,您可以将构建升级为“生产”,这将保留所有构建工件,直到您决定删除它们。
We use Hericus Software's Zed Builds and Bugs Management and it can handle what you are describing. Our main builds consist of over 61 discrete steps covering compiles for Java, C++, C#, and installation builds for 5 different OS platforms. Some of the steps execute in parallel, some can fail without causing the whole build to fail, and many of the steps are executed remotely on different machines.
1) Yes. As the steps are executed for a build you can immediately see the results of the step without having to wait for the whole build to complete.
2) Yes. You can define whether a step failure causes a complete build failure or not. The ability to create "child" or "sub" builds called by a "parent" or "master" build allows for extreme flexibility.
3) Yes. We're using makefiles, ant, C# solutions, and several custom scripts and they all integrate well.
4) Yes. The build server is java and only requires a 1.6 JDK, so any platforms work for either the main build server or the satellite build servers.
5) Yes. Everything copied into the build "status" directory is saved. This includes command standard output/error which can be reviewed from the web site. You choose how much "dev" build history to keep in terms of number of builds. A build can also be promoted to "QA" in which case it won't be deleted until it has been removed from "QA". From QA you can promote a build to "Production" which will keep all of the build artifacts until you decide to delete them.
请尝试 Thoughtworks 的 Cruise
plese try Cruise from Thoughtworks