Selectively perform build tasks in a build process
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开发者_JS百科, 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?
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.
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.
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.
精彩评论