I want to test my builds against the teams latest code-base without having to branch it over to a trial project.
Instead, I do the following:
- Create a separate build definition called 'Infrastructure'
- clone a production definition
- Set the trigger on the Infrastructure build definition to manual.
- Set the Infrastructure definitions permissions to allow only [Project]\Build group members to have full control of it.
- keeps the notification of broken builds away from the bulk of the team).
- Create a separate build process template, called 'Infrastructure.xaml'.
- Point the Infrastructure build definition at the Infrastructure process template.
Now when I want to iterate on a new build feature for the team:
- Check out the build process template I want to update, and lock it.
- Copy the build process template I want to update overtop of the Infrastructure.xaml.
- Add my build feature to the Infrastructure.xaml file, and check that in.
- Use the Infrastructure build definition to test my changes.
- Iterate over 3-4 until I get it right.
- Complete the feature and have my changes verified by another Infrastructure team member.
- Copy Infrastructure.xaml over the build process template I locked in (1) and check it in.
This still results in 'spam' in the TFS source control, but it keeps the build definition iteration out of the eyes of the team. My build process templates are located out of the main source tree (under the Build Process Templates folder, or in the branches themselves under a 'Core/Build' folder where no-one else on the team is typically paying any attention) so that the team is largely unaffected by it.