Le poste de développement doit contenir les lignes suivantes dans le profile utilisateur Powershell :
."$env:PsIonicProfile\"Profile_DevCodePlex.Ps1"

Ensuite créez une variable d'environnement système, nommée PsIonicProfile, pointant sur votre répertoire de travail, exemple :
$env:PsIonicProfile
#pointe sur 
C:\Users\Laurent\Documents\WindowsPowerShell\Tools

Enfin recopiez le script Profile_DevCodePlex.Ps1 dans le répertoire $env:PsIonicProfile, puis modifiez toutes les lignes indiquées comme étant spécifiques au poste de développement :
   $SvnPathRepository='G:\PS' # Spécifique au poste de développement

Installation des outils

Psake. Une introduction à Psake
Pester
Helps (Documentation des scripts complémentaires)

Construction de la livraison

Une fois les outils nécessaires installés et accessibles, exécuter dans le répertoire \Tools le script Build.ps1.

Celui-ci appelle les tâches PSAKE contenues dans les scripts suivants :
\Tools\Release.ps1
\Tools\BuildZipAndSFX.ps1
\Tools\Common.ps1

Il est recommandé d'exécuter cette construction à partitr d'une console Powershell version 3, ainsi la compilation de la dll PsionicTools se fera pour le framework dotnet 2.0 ( PS v2) et pour le framework dotnet 4.0 ( PS v3).

Les tâches exécutées se charge de :
  • vérifier l'encodage des fichiers du projet avant et après la génération effectuée,
  • supprimer et reconstruire l'arborescence du répertoire $PsIonicLivraison,
  • valider le contenu des fichiers de localisation .psd1 ( recherche des clés inutilisées ou absentes),
  • exécuter le parsing condionnel, Function Remove-Conditionnal, c'est à dire inclus des fichiers PS1 externes au projet, supprime les lignes de DEBUG,
  • recopier les fichiers du référentiel dans l'arborescence du répertoire $PsIonicLivraison,
  • valider la syntaxe des scripts,
  • compiler la DLL PsionicTools,
  • construire l'aide offline XML,
  • et enfin, en utilisant le module du projet, génère une archive (.zip) et une archive auto extractible (.exe) exécutant un script de setup.
En un mot, ces tâches automatisent la construction du livrable et les contrôles préliminaires associés.

Détails des fonctions utilisées

Last edited Apr 8, 2014 at 1:15 PM by LaurentDardenne, version 25

Comments

No comments yet.