Industrialiser ses développements avec le SharePoint Framework 2/3 (Release)

Voici la suite de la série sur la mise en place de l'industrialisation des développements réalisés à l'aide du SPFx dont voici le plan pour rappel :

  1. Mise en place d'une build dans Visual Studio Online pour les applications SPFx
  2. Mise en place d'une release dans VSO pour les applications SPFx
  3. Scénarios et paramétrage avancés

Approche générale

Nous allons donc attaquer cette fois-ci la partie Release avec pour objectifs : 

  • Installation des commandes PnP
  • Récupération du package et vérification de sa présence dans le catalogue d'app pour le retirer si nécessaire
  • Ajout au catalogue
  • Installation sur un site (pour la recette par exemple)

ALM_SPFx_Release_Overview.png

Initialisation de la release

Pour notre release, nous allons partir sur une définition vide, avec Hosted VS2017 comme agent et en sélectionnant notre précédente build comme artefact, puis ajoutons 3 tâches PowerShell. J'ai découpé pour clarifier les différentes étapes, mais vous pourrez bien entendu tout regrouper et/ou le gérer depuis un script à part.

ALM_SPFX_Release_Tasks.JPG

 

Passons à la déclaration des variables qui seront utilisées dans nos scripts PowerShell : 

  • packageFilename : le nom du package, par exemple my-webpart.sppkg
  • solutionName : le nom de la solution (vous pouvez la retrouver dans le fichier package-solution.json de votre projet)
  • siteUrl : l'URL du site SharePoint sur lequel sera activée la solution
  • username : compte utilisé pour le déploiement; il doit être admin du tenant
  • password : le mot de passe du compte, à sécuriser ! A ce sujet, pour le récupérer, il faudra le passer comme argument.
     ALM_SPFX_Release_Secret.JPG

PnP PowerShell

Comme expliqué dans le précédent article, nous allons avoir besoin des extensions PowerShell proposées par PnP et disponibles sur GitHhub : https://github.com/SharePoint/PnP-PowerShell

Ces extensions comprennent des cmdlets qui appellent les API ALM pour le SharePoint Framework.

Dans la première tâche PowerShell, nous déclarons Nuget comme fournisseur de package, puis nous installons le module PnP pour SharePoint Online.

ALM_SPFX_Release_01.JPG

Faire place nette avant le déploiement de notre solution

Il est bien sûr possible de ne procéder qu'à une mise à jour, mais je pars ici du principe d'un déploiement complet à chaque fois dont voici le déroulé: 

  • Connexion au site via le Connect-PnPOnline
  • Récupération des apps déclarées avec Get-PnpApp pour y trouver la nôtre
  • Si elle est présente, on la désinstalle du site (Uninstall-PnpApp) puis on la retire du catalogue (Remove-PnPApp) avec une petite attente entre les 2 pour laisser le temps à la désinstallation de se faire proprement

ALM_SPFX_Release_02.JPG

Déploiement du package

Dernière étape, et non des moindres, le déploiement ! Après s'être reconnecté au site, on ajoute le package au catalogue (Add-PnpApp) puis on installe (Install-PnpApp). A noter que j'ai laissé la publication en commentaire (Publish-PnPApp) car c'est automatique pour les applications SPFx. On passe le chemin vers le répertoire contenant le package (en plus du mot de passe).

ALM_SPFX_Release_03.JPG

Et c'est fini ! Vous pouvez bien évidemment activer le déploiement continu, et en activant la build sur chaque checkin, vous voilà avec une chaîne d'intégration continue.

Dans le prochain article nous verrons comment aller encore un peu plus loin en modifiant certains paramètres du package lors de la build ou en gérant le déploiement sur plusieurs environnements.

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus