Scenario 2 - Publish Procedure

[This document is a Draft]

The Problem

The publish of a project commonly involves a pre-defined serie of steps. For exemple, my current release process for this project is:
  1. Validate the development (Code review, unit-testing)
  2. Send the changes to the Hg repository (codeplex)
  3. Tag the current changeset with the version number
  4. Change the version number
  5. Save and send the changes to the Hg repository
  6. Provide the new release through a web site

Generally speaking IT guys don't like manual procedures! They prefer to spend 5 days in overtime to write an AMAZING script than losing for a second time 1 minute of their lifes with this BORING procedure!

I'm an IT guy and as a result, I decide to take a week to write an automated script for this procedure instead of continuing my manual procedure. 5 days of work for a procedure that takes 5 minutes on every release: as expected there is no "Return on Investment" on this scenario :)

Regarding those steps and the interaction with Mercurial, we need to be able to run the following Hg commands: hg tag, hg commit and hg push.

Note: I know that a bat file can resolve this issue easily but bat scripts are not the purpose of this project.

The Requirements

  • The user has the responsibility to retrieve the changes from the global repository.

The Scenario

As the step 4 required a manual input (does I need to change the major, minor, or build number of the version?) the scenario will be to update the build process of a project to:
  • Ensure that there is no code analysis issue through FxCop on the current project
  • Push the changesets to the codeplex repository
  • Tag the current changeset with the current version of the project

The Objectives

  • Create a MSBuild task that push some changes to a central repository
  • Create a MSBuild task that tag a repository
  • Create a MSBuild project that demonstrates this scenario

External Sources

Last edited Mar 6, 2010 at 11:49 AM by Faz, version 3


No comments yet.