Visual Studio Team Services (VSTS) fournit des fonctionnalités d’intégration continue (CI) et de déploiement continu (CD) assez intéressant que vous pouvez utiliser au sein de vos pipelines DevOps et vos séquences automatisées pour vos développements.
Si vos solutions se reposent sur PnP PowerShell durant leurs phases de build et/ou de déploiement, vous aurez besoin d’avoir PnP PowerShell installé sur l’agent. Malheureusement l’agent hébergé n’a pas PnP PowerShell installé par défaut. Note: Cette documentation s’applique uniquement à l’agent hébergé 2017 et l’agent hébergé, l’agent hébergé base linux n’est pas supporté pour l’instant.
Installation de PnP PowerShell
Ajoutez une tâche au début de votre définition to build/release (type PowerShell). Dans le champ Type
sélectionnez Inline Script
.
Dans le champ Inline Script
copiez ce script
Install-PackageProvider -Name NuGet -Force -Scope "CurrentUser"
Install-Module SharePointPnPPowerShellOnline -Scope "CurrentUser" -Verbose -AllowClobber -Force
Note: vous pouvez aussi installer une version spécifique en spécifiant le paramètre -RequiredVersion
à la ligne 2.
Note: vous pouvez aussi adapter ce script à vos besoins et/ou l’inclure dans un fichier faisant partie de votre contrôle de code source au besoin pour mieux correspondre à votre processus devops.
Note: cette tâche doit être incluse à chaque phase d’agent avant l’utilisation de PnP PoweeShell
Utilisation de PnP PowerShell
Dans vos scripts faisant utilisation de PnP PowerShell, avant de faire appel aux commandes dépendantes de ce module, assurez vous d’inclure la ligne suivante.
Import-Module SharePointPnPPowerShellOnline -Scope "Local"
Désinstallation de PnP PowerShell
Note: cette étape est optionnelle si vous utilisez l’agent hébergé et est uniquement fournie aux personnes utilisant un agent personnalisé et pour lequel ils ne veulent/peuvent pas installer PnP PowerShell de manière globale. Afin d’éviter les conflits si votre script requiert une version spécifique de PnP PowerShell, la bonne pratique est de désinstaller le module à la fin de la séquence. A cette fin, simplement ajouter une tâche PowerShell à la fin de la séquence et copier ce script.
get-installedmodule SharePointPnPPowerShellOnline | ? {$_.InstalledLocation -like "*"+$home+"*"} | Uninstall-Module -ForceCet article est une traduire d'un wiki que j'ai ajouté au repo GitHub PnP PowerShell récemment