Utiliser PnP PowerShell avec Visual Studio Team Services (VSTS) et l'agent hébergé

Sep 29, 2017

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


Edité la dernière fois le 6 Sep 2021 par Vincent


Tags: