ALM avec la Power Platform : comment industrialiser le cycle de vie de vos apps grâce aux pipelines DevOps CICD – 2/2

Posté le : 30/09/2022

Partager

Mise en place des pipelines Azure DevOps

Rentrons dans le cœur du sujet.

Etant donné que la Power Platform ne permet pas à ce jour d’héberger automatiquement le code source d’une solution sur un gestionnaire de source, nous allons devoir mettre en place un premier pipeline pour cela.

Un second pipeline s’occupera ensuite de mettre à disposition le package prêt à être déployé par le troisième pipeline.

Le dernier pipeline est celui dit de « release » qui s’occupe de déployer le package sur l’environnement de production.

 

Pré-requis

  1. Créez un projet Azure DevOps et activez le gestionnaire de source Git ainsi que les pipelines.
  2. Préparer des SPN pour vos deux environnements PowerPlatform en suivant la documentation de Microsoft : https://docs.microsoft.com/fr-fr/power-platform/alm/devops-build-tools#create-service-principal-and-client-secret-using-powershell, puis ajoutez les au niveau de la configuration du projet DevOps. N’utilisez pas l’option « username / password » dans les pipelines car cette option d’authentification ne reflète plus les standards de sécurité conseillés.
  3. Créer un utilisateur d’application par environnement Power Platform, le lier au SPN correspondant et lui attribuer le rôle « System Administrator ».
  4. Installer les « PowerPlatform Build Tools » sur votre environnement Azure DevOps : https://marketplace.visualstudio.com/items?itemName=microsoft-IsvExpTools.PowerPlatform-BuildTools
  5. Préparer un fichier de configuration json qui permettra de remplir les valeurs des variables d’environnements et des références de connexions de la solution sur l’environnement de production depuis le pipeline de déploiement. Documentation : https://docs.microsoft.com/fr-fr/power-platform/alm/conn-ref-env-variables-build-tools

Pipeline de build 1 : DEV vers Git

Créez un pipeline de build en mode classique.

Ajoutez les tâches suivantes dans cet ordre :

  1. Power Platform Tool Installer
  2. Power Platform Publish Customizations
    • Service connection : SPN de l’environnement de DEV
  3. Power Platform Set Solution Version
    • Service connection : SPN de l’environnement de DEV
    • Version number : $(Build.BuildNumber). Pensez à configurer le numéro de version dans les options du pipeline avec par exemple l’expression suivante : $(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId)
  4. Power Platform Export Solution
    • Service connection : SPN de l’environnement de DEV
    • Output file : MaSolution_unmanaged.zip
  5. Power Platform Export Solution
    • Service connection : SPN de l’environnement de DEV
    • Output file : MaSolution_managed.zip
    • Cocher « Export as Managed Solution »
  6. Power Platform Unpack Solution
  7. PowerShell
    • Dans les options de l’agent, cocher la case « Allow scripts to access the OAuth token »
    • Script inline :

Résultat

Pipeline de build 2 : publication du package pour le pipeline de release

Créez un pipeline de build en mode classique. Configurez le déclencheur de ce pipeline et activez l’intégration continue. Ainsi, il sera déclenché automatiquement après l’exécution complète du premier pipeline.

Ajoutez la tâche suivante :

  1. Publish build artifacts

Pipeline de release

Créez un pipeline de release.

Configurer l’artefact publié sur le second pipeline de build

Ajoutez les tâches suivantes dans cet ordre :

  1. Power Platform Tool Installer
  2. Power Platform Import Solution
    • Service connection : SPN de l’environnement de PROD
    • Cocher « Use deployment settings file » et indiquer le lien du fichier json préparé en prérequis. Celui-ci doit être stocké sur le Git du projet pour être accessible par le pipeline de release.

 

 

 

Lancer les pipelines

  • Le premier pipeline de build doit être exécuté manuellement par le développeur. Il correspond au « commit » du projet et il est donc fortement conseillé de l’exécuter régulièrement.
  • Le second s’exécute ensuite automatiquement dans la foulée.
  • Le pipeline de release doit être exécuté manuellement pour déclencher la livraison en prod, après s’être assuré de la qualité du package.

Pour aller plus loin dans l’industrialisation

Voici quelques pistes que vous pouvez explorer pour améliorer l’expérience de vos développeurs ou rendre vos pipelines plus faciles à maintenir :

  • Utiliser des variables dans les pipelines afin de le rendre générique et de faciliter sa maintenance et son déploiement pour de nouveaux projets Power Platform.
  • Générer le fichier de configuration des déploiements à la volée dans les pipelines à partir d’un fichier xml qui serait stocké dans la solution PowerPlatform et mis à jour par le développeur quand il ajoute des références de connexions ou des connecteurs à son application.
  • Exécuter le premier pipeline de build automatiquement tous les soirs afin de s’assurer que le travail est correctement sauvegardé sur Git en cas d’oubli d’un développeur.
  • Ajouter la possibilité de mettre un message de commit Git et de lancer le pipeline de build via un flux Power Automate Cloud pour faciliter la démarche de commit et donc le travail des développeurs.
  • Ajouter un environnement intermédiaire qui permettra à une équipe qualité de tester une livraison sur un environnement dédié avant de la déployer en production. Il faut dans ce cas avoir un pipeline de release gérant cet environnement supplémentaire.
  • Passer les pipelines de build en Yaml afin de les héberger directement dans le repo Git de l’application et donc pouvoir lier une livraison à une version du pipeline.

À noter enfin que les pipelines présentés ne fonctionnent pas pour une application Power Pages (anciennement Power Apps Portals), cependant les outils « Power Platform Build Tools » contiennent toutes les tâches Azure DevOps nécessaires à leur mise en place. Nous verrons cela dans un prochain article.

Contactez-nous Postuler Nos offres d'emploi