Mon premier script PowerShell avec Team build 2013

TFS 2013 vous permet maintenant d’ajouter vos propres scripts powershell (Powershell c’est bien) directement dans le processus de build. On pouvait déjà le faire avec TFS 2012 et les versions précédentes, mais il fallait adapter le script (via ces activités).
Le paramétrage est directement un élément de la build. Ici pour un process Git :
Les chemins sont en absolu par rapport à la racine du code source. Les répo Git ont ici l’avantage : quelque soit la branche, les chemins restent les mêmes ! Un exemple : j’ai un projet dans le dossier “\MyConsoleApp” (pas de “’$” et de “/” : nous sommes dans un repo Git). Le plus souvent, j’ajoute le script à cet endroit (“MyPostBuildScript.ps1”):
<br> Write-Host $("Les binaires sont ici: '{0}'" -f $env:TF_BUILD_BINARIESDIRECTORY)<br> Write-Host $("Les sources c'est par là: '{0}'" -f $Env:TF_BUILD_SOURCESDIRECTORY)<br>
Le script est délibérément simple : ce billet a juste pour vocation de vous montrer à quel point il est facile d’utiliser des scripts. Ajoutons le maintenant dans la définition de la build :
Ne pas hésiter à déplacer le script dans un dossier neutre pour qu’il soit utilisable par plusieurs builds. Le script est le suivant :
Une fois lancée la build donne ceci dans les logs de diagnostics :
<br> Run optional script after MSBuild00:00:08<br> C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -NonInteractive -File "C:\Builds\1\DemoProject\master\src\MyConsoleApp\MyPostBuildScript.ps1"<br> Les binaires sont ici: 'C:\Builds\1\DemoProject\master\bin'<br> Les sources c'est par là: 'C:\Builds\1\DemoProject\master\src'<br>
Ce genre de script va vous rendre la vie de plus en plus facile :
-
Il vous permet d’éliminer toutes vos customisations de build et les remplacer par des scripts. Cela sera plus clair et il y aura un historique lisible.
-
Vous pouvez faire participer vos amis de l’IT à la paramétrisation des builds. Rien de plus simple que de demander un script que vous ajouterez vous-même à la build. Tout le monde est content: “devops” compliant
- La build devient un élément d’échange via un langage commun: Powershell
Pour terminer, une piste pour ne pas partir de zéro : https://tfsbuildextensions.codeplex.com/SourceControl/latest#Scripts/ApplyVersionToAssemblies.ps1