Hi all,

 

We are just about to start developing a tool for TFS called “TFS Deployer”. Basically it’s a windows service that listens for build quality changed notification events from the eventing service. The idea is that when you go from say “Unexamined” to “Ready to Test” a script will execute on a specific computer.

 

You would then install TFS Deployer onto your test, staging and production systems and it would listen for the events and execute a PowerShell script when a transition occurs. The mapping of computers and transitions would be a file which is under version control near the definition of the Team Build Types. For example:

 

                $/SystemA/TeamBuildTypes/SystemAContinuous/Development/DeploymentMapping.xml

 

The file would look like this:

 

                <DeploymentMappings xmlns=”...”>

                                <Mapping

                                                Computer=”TEST1”

                                                OriginalQuality=”Unexamined”

                                                NewQuality=”Test”

                                                Script=”UnexaminedToTest.ps1” />

                                <Mapping

                                                Computer=”PROD1”

                                                OriginalQuality=”Test”

                                                NewQuality=”Staging”

                                                Script=”TestToStaging.ps1” />

                                <Mapping

                                                Computer=”PROD1”

                                                OriginalQuality=”Staging”

                                                NewQuality=”Production”

                                                Script=”StagingToProduction.ps1” />

                                <Mapping

                                                Computer=”PROD1”

                                                OriginalQuality=”Production”

                                                NewQuality=”Decomissioned”

                                                Script=”ProductionToDecomissioned.ps1” />

                </DeploymentMappings>

 

TFS Deployer will then read this configuration file whenever you change the build quality inside TFS, and, if the change is relevant to the machine running TFS deployer it will grab *ALL* the files in the $/.../Deployment path and run the script specified.

 

The script itself will have access to the BuildInfo object so that the script writer can figure out where to get the drop files from the build. The nice thing about this is that PowerShell has some good features. Like the ability to change XML files by doing something like this:

 

$configuration = [xml](get-content Test.exe.config)

$configuration.configuration.”system.web”.compilation.debug = “false”

set-content Test.exe.config $configuration.get_OuterXml()

 

But in addition to that, you can also automate the really challenging stuff. Anyway – do you guys see any use in this tool? Should we release it? What do you think about our approach?

OzTFS.com - to unsubscribe from this list, send a message back to the list with 'unsubscribe' as the subject.
Powered by mailenable.com - List managed by www.readify.net

Reply via email to