在构建过程中选择性地执行构建任务
我们目前正在使用 CruiseControl.NET 和 NANT 来运行我们的构建过程。它工作得很好,但是,我希望能够使我为每个构建运行的任务更加精细,而不需要为项目创建更多构建。
例如,作为一个简单的示例,如果我有一个创建构建,我想在其中执行以下任务: - 建造 - 包裹 - 部署到质量检查 - 构建发行说明 - 向内部系统发送通知,
我不一定希望每次创建构建时都部署到 QA。另外,当我只是进行 QA 构建时,我不想构建发行说明并发送通知。我可以创建更多构建(创建、为 QA 创建、为发布创建),但是我想看看是否有一个构建系统允许我在每次执行任务时从任务列表中进行选择建造。
有没有类似的东西,或者我可以让 CC.NET 像这样工作吗?
We're currently using CruiseControl.NET and NANT to run our build process. It works well, however, I'd like to be able to make the tasks that I run for each build more granular WITHOUT creating more builds for the project.
For example, as a simple example, if I have a create build where I'd like to perform the following tasks:
- Build
- Package
- Deploy to QA
- Build Release Notes
- Send a notification to an internal system
I don't necessarily want to deploy to QA every time I do a create build. Also, I don't want to build release notes and send notifications when I'm just doing a QA build. I could just create more builds (Create, Create for QA, Create for Release), however I'd like to see if there's a build system out there that will allow me to pick and choose from a list of tasks every time I perform a build.
Is there anything like that out there, or can I make CC.NET work like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查看 CC.NET 1.5+ 的动态参数。
您可以给用户一个选择,然后将值传递给您的 nant 脚本。我认为 CCtray 也支持参数,因此可以直接从桌面触发构建并向其传递一些值。
Have a look at Dynamic parameters for CC.NET 1.5+.
You can give the user a choice and then pass the value down to your nant script. I think CCtray supports parameters as well you so can trigger you build directly from your desktop and pass some value to it.
查看 Go 发布管理系统 - http://www.thoughtworks-studios .com/go-agile-release-management。
Go™ 提供了强大且独特的发布工作流程管理系统(部署管道),可提供对每个变更状态的可见性,并在变更从构建到测试再到发布时控制变更流程。
Take a look at Go Release Management System - http://www.thoughtworks-studios.com/go-agile-release-management .
Go™ provides a powerful and unique release workflow management system - deployment pipelines - that provides visibility into the status of each change, and control over the flow of changes as they move from build to testing to release.
我们有一个主 nant 构建文件,在 ccnet 中,我们通过要执行的任务列表来调用该文件。这个 ccnet 项目被重复几次,我们调用不同的任务并让所有任务在同一个工作文件夹中运行。我们使用queue =“ProjectX”来确保这些项目中的任何一个都不会同时运行,并且效果很好。
We have one master nant build file and in ccnet we call this file with a list of tasks to perform. This ccnet project is duplicated a couple of times where we call different tasks and let all tasks run in the same work folder. We use queue="ProjectX" to make sure any of these projects will never run similtaniously and this works pretty well.