Mettre en place des pipelines CI/CD

TeamsFx vous aide à automatiser votre workflow de développement lors de la création d’une application Microsoft Teams. Les outils et modèles permettant de configurer des pipelines CI/CD sont de créer des modèles de flux de travail et de personnaliser le flux de travail CI/CD avec GitHub, Azure DevOps, Jenkins et d’autres plateformes. Pour provisionner des ressources, vous pouvez créer des principaux de service Azure et utiliser le pipeline d’approvisionnement ou le faire manuellement à l’aide de fichiers bicep. Pour publier l’application Teams, vous pouvez utiliser le pipeline Publier ou le faire manuellement en tirant parti du Portail des développeurs pour Teams.

Outils et modèles

Outils et modèles Description
TeamsFx-CLI-Action Action GitHub qui s’intègre à l’interface CLI TeamsFx.
Kit de ressources Microsoft Teams pour Visual Studio Code Extension Microsoft Visual Studio Code qui vous aide à développer des workflows d’automatisation et d’application Teams pour GitHub, Azure DevOps et Jenkins.
Kit de ressources Microsoft Teams pour CLI Outil en ligne de commande qui vous aide à développer une application Teams et des flux de travail d’automatisation pour GitHub, Azure DevOps et Jenkins.
github/ci.yml
github/cd.azure.yml
github/cd.spfx.yml
github/provision.azure.yml
github/provision.spfx.yml
github/publish.yml
Modèles d’automatisation sur GitHub.
azdo/ci.yml
azdo/cd.azure.yml
azdo/cd.spfx.yml
azdo/provision.azure.yml
azdo/provision.spfx.yml
azdo/publish.yml
Modèles d’automatisation sur Azure DevOps.
jenkins/Jenkinsfile.ci
jenkins/Jenkinsfile.azure.cd
jenkins/Jenkinsfile.spfx.cd
jenkins/Jenkinsfile.azure.provision
jenkins/Jenkinsfile.spfx.provision
jenkins/Jenkinsfile.publish
Modèles d’automatisation sur Jenkins.
autres/ci.sh
autres/cd.azure.sh
autres/cd.spfx.sh
autres/provision.azure.sh
autres/provision.spfx.sh
autres/publish.sh
Modèles de script pour l’automatisation en dehors de GitHub, Azure DevOps ou Jenkins.

Configurer des pipelines

Vous pouvez configurer des pipelines avec les plateformes suivantes :

  1. Configurer des flux de travail avec GitHub
  2. Définissez les pipelines avec Azure DevOps
  3. Définissez les pipelines avec Jenkins
  4. Définissez les pipelines pour les autres plateformes

Types de modèles de flux de travail

TeamsFx prend en charge quatre types de modèles de flux de travail :

  • CI : aide à l’extraction du code, à la génération et à l’exécution du test.
  • CD : Aide à l’extraction du code, à la génération, au test et au déploiement dans le cloud.
  • Provisionner : aide à créer ou à mettre à jour des ressources dans les inscriptions d’applications cloud et Teams.
  • Publier : aidez à publier l’application Teams sur les locataires.

Préparer les informations d’identification

Deux catégories d’informations d’identification de connexion sont impliquées dans les flux de travail CI/CD :

  • Microsoft 365 : les informations d’identification Microsoft 365 sont requises pour exécuter les flux de travail CD des projets basés sur provisionner, publier et SPFx.
  • Azure : les informations d’identification Azure sont requises pour exécuter les workflows de provisionnement et de CD des projets hébergés Azure.

Remarque

L’ID d’abonnement Azure doit être défini dans des variables d’environnement ou env/.env.* des fichiers avant d’exécuter des workflows de provisionnement. Le nom de la variable utilisée est AZURE_SUBSCRIPTION_ID. En outre, n’oubliez pas de valider et de transmettre des fichiers env/.env.* dans des référentiels Git ou de définir les variables d’environnement des pipelines, car elles sont ignorées par fichier par .gitignore défaut.

Nom Description
AZURE_SERVICE_PRINCIPAL_NAME Nom du principal de service d’Azure utilisé pour provisionner des ressources.
AZURE_SERVICE_PRINCIPAL_PASSWORD Mot de passe du principal de service Azure.
AZURE_SUBSCRIPTION_ID Pour identifier l’abonnement dans lequel les ressources doivent être approvisionnées.
AZURE_TENANT_ID Pour identifier le locataire dans lequel réside l’abonnement.
M365_ACCOUNT_NAME Compte Microsoft 365 pour la création et la publication de l’application Teams.
M365_ACCOUNT_PASSWORD Mot de passe du compte Microsoft 365.
M365_TENANT_ID Pour identifier le locataire dans lequel l’application Teams est créée ou publiée. Cette valeur est facultative, sauf si vous avez un compte multilocataire et que vous souhaitez utiliser un autre locataire. En savoir plus sur la recherche de votre ID de locataire Microsoft 365.

Remarque

  • Actuellement, un style d’authentification non interactif pour Microsoft 365 est utilisé dans les flux de travail CI/CD. Vérifiez donc que votre compte Microsoft 365 dispose de privilèges suffisants dans votre locataire et n’a pas d’authentification multifacteur ou d’autres fonctionnalités de sécurité avancées activées. Reportez-vous à Configurer les informations d’identification Microsoft 365 pour vous assurer que vous avez désactivé l’authentification multifacteur et les valeurs par défaut de sécurité pour les informations d’identification utilisées dans le flux de travail.
  • Actuellement, le principal de service pour Azure est utilisé dans les workflows CI/CD, et pour créer des principaux de service Azure à utiliser, reportez-vous à ici.

Types d’hôtes

Les modèles varient selon les types d’hôtes (Azure ou SPFx) selon lesquels les modèles de workflow d’approvisionnement et de CD sont divisés en copies. Les modèles de flux de travail CI et Publier sont indépendants du type hôte. Si vous travaillez sur des projets hébergés par Azure, téléchargez ces modèles avec le nom de fichier infixes azure . Si vous travaillez sur des projets hébergés SPFx, téléchargez ces modèles avec le nom de fichier infixes spfx .

Configurer des flux de travail avec GitHub

Pour configurer des pipelines avec GitHub pour CI/CD :

  • Créer des flux de travail CI/CD.
  • Personnaliser les flux de travail CI/CD.

Créer des flux de travail CI/CD

  1. Téléchargez les fichiers de modèle correspondants à partir des outils et modèles.
  2. Renommez les fichiers de modèle téléchargés en fonction de vos besoins.
  3. Placez-les sous .github/workflows, qui est le dossier désigné pour GitHub Actions.
  4. Commitez et envoyez ces fichiers de modèle dans des référentiels distants.
  5. Ajoutez les secrets chiffrés nécessaires pour vos workflows.
  6. Déclenchez vos workflows. Consultez plus d’informations sur le déclenchement d’un workflow sur GitHub.

Personnaliser le flux de travail CI

Pour personnaliser le flux de travail CI, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le workflow CI est déclenché lorsqu’une nouvelle demande de tirage est créée sur dev la branche.
  2. Ajouter des scripts pour générer le projet : par défaut, l’étape Build the project est commentée.
  3. Ajouter des scripts pour exécuter un test unitaire : par défaut, l’étape Run unit test est commentée.

Personnaliser le flux de travail cd

Pour personnaliser le workflow CD, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le workflow CD est déclenché lorsque de nouvelles validations sont envoyées dans main la branche.
  2. Modifier la valeur de la variable TEAMSFX_ENV_NAMEd’environnement : par défaut, la valeur est dev.
  3. Modifier la valeur de la variable TEAMSFX_CLI_VERSIONd’environnement : par défaut, la valeur est 2.*.
  4. Ajouter des scripts pour générer le projet : par défaut, l’étape Build the project est commentée.
  5. Ajouter des scripts pour exécuter un test unitaire : par défaut, l’étape Run unit test est commentée.

Personnaliser le flux de travail d’approvisionnement et de publication

Pour personnaliser le flux de travail Provisionner et publier, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le workflow est déclenché manuellement.
  2. Modifier la valeur de la variable TEAMSFX_ENV_NAMEd’environnement : par défaut, la valeur est dev.
  3. Modifier la valeur de la variable TEAMSFX_CLI_VERSIONd’environnement : par défaut, la valeur est 2.*.

Configurer des pipelines avec Azure DevOps

Pour configurer des pipelines avec Azure DevOps pour CI/CD :

  • Créer des pipelines CI/CD.
  • Personnaliser les pipelines CI/CD.

Créer des pipelines CI/CD

  1. Téléchargez les fichiers de modèle correspondants à partir des outils et modèles.
  2. Renommez les fichiers de modèle téléchargés en fonction de vos besoins.
  3. Placez-les sous .azure/pipelines, qui est le dossier conventionnel pour Azure Pipelines.
  4. Commitez et envoyez ces fichiers de modèle dans des référentiels distants.
  5. Créez les pipelines Azure DevOps correspondants en suivant Créer votre premier pipeline Azure DevOps.
  6. Ajoutez les variables de pipeline Azure DevOps nécessaires pour vos pipelines.
  7. Déclenchez vos pipelines automatiquement, manuellement ou personnalisez (consultez la trigger: section ou pr: dans les fichiers yml pour rechercher les déclencheurs). Pour plus d’informations sur les déclencheurs dans Azure DevOps, consultez Déclencheurs dans azure pipelines.

Personnaliser le pipeline CI

Pour personnaliser le pipeline CI, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le pipeline CI est déclenché lorsqu’une nouvelle demande de tirage est créée sur dev la branche.
  2. Ajouter des scripts pour générer le projet : par défaut, l’étape Build the project est commentée.
  3. Ajouter des scripts pour exécuter un test unitaire : par défaut, l’étape Run unit test est commentée.

Personnaliser le pipeline CD

Pour personnaliser le pipeline CD, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le pipeline CD est déclenché lorsque de nouvelles validations sont envoyées dans main la branche.
  2. Modifier la valeur de la variable TEAMSFX_ENV_NAMEd’environnement : par défaut, la valeur est dev.
  3. Modifier la valeur de la variable TEAMSFX_CLI_VERSIONd’environnement : par défaut, la valeur est 2.*.
  4. Ajouter des scripts pour générer le projet : par défaut, l’étape Build the project est commentée.
  5. Ajouter des scripts pour exécuter un test unitaire : par défaut, l’étape Run unit test est commentée.

Personnaliser les pipelines d’approvisionnement et de publication

Pour personnaliser le pipeline d’approvisionnement et de publication, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le workflow est déclenché manuellement.
  2. Modifier la valeur de la variable TEAMSFX_ENV_NAMEd’environnement : par défaut, la valeur est dev.
  3. Modifier la valeur de la variable TEAMSFX_CLI_VERSIONd’environnement : par défaut, la valeur est 2.*.

Configurer des pipelines avec Jenkins

Pour configurer des pipelines avec Jenkins pour CI/CD :

  • Créer des pipelines CI/CD.
  • Personnaliser les pipelines CI/CD.

Créer des pipelines CI/CD

  1. Téléchargez les fichiers de modèle correspondants à partir des outils et modèles.
  2. Renommez les fichiers de modèle téléchargés en fonction de vos besoins.
  3. Placez-les sous .jenkins/pipelines, qui peut être un dossier conventionnel pour Jenkins Pipelines.

Personnaliser le pipeline CI

Pour personnaliser le pipeline CI, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le pipeline CI est déclenché régulièrement.
  2. Ajouter des scripts pour générer le projet : par défaut, l’étape Build the project est commentée.
  3. Ajouter des scripts pour exécuter un test unitaire : par défaut, l’étape Run unit test est commentée.

Personnaliser le pipeline CD

Pour personnaliser le pipeline CD, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le pipeline CD est déclenché régulièrement.
  2. Modifier la valeur de la variable TEAMSFX_ENV_NAMEd’environnement : par défaut, la valeur est dev.
  3. Modifier la valeur de la variable TEAMSFX_CLI_VERSIONd’environnement : par défaut, la valeur est 2.*.
  4. Ajouter des scripts pour générer le projet : par défaut, l’étape Build the project est commentée.
  5. Ajouter des scripts pour exécuter un test unitaire : par défaut, l’étape Run unit test est commentée.

Personnaliser les pipelines d’approvisionnement et de publication

Pour personnaliser le pipeline d’approvisionnement et de publication, vous pouvez effectuer les opérations suivantes :

  1. Modifier le déclencheur : par défaut, le pipeline est déclenché régulièrement.
  2. Modifier la valeur de la variable TEAMSFX_ENV_NAMEd’environnement : par défaut, la valeur est dev.
  3. Modifier la valeur de la variable TEAMSFX_CLI_VERSIONd’environnement : par défaut, la valeur est 2.*.

Configurer des pipelines pour d’autres plateformes

Vous pouvez suivre les exemples prédéfinis de scripts bash répertoriés à partir d’Outils et de modèles pour créer et personnaliser des pipelines CI/CD sur les autres plateformes :

Les scripts sont basés sur un outil de ligne de commande TeamsFx multiplateforme, TeamsFx-CLI. Vous pouvez l'installer avec npm install -g @microsoft/teamsfx-cli et suivre la documentation pour personnaliser les scripts.

Remarque

  • Pour activer @microsoft/teamsfx-cli s’exécutant en mode CI, activez CI_ENABLED en export CI_ENABLED=true. En mode CI, @microsoft/teamsfx-cli est convivial pour CI/CD.
  • Pour activer @microsoft/teamsfx-cli s’exécutant en mode non interactif, définissez une configuration globale avec la commande : teamsfx config set -g interactive false. En mode non interactif, @microsoft/teamsfx-cli n’invite pas à entrer des entrées.

Veillez à configurer azure et Microsoft 365 les informations d’identification dans vos variables d’environnement en toute sécurité. Par exemple, si vous utilisez GitHub comme référentiel de code source, consultez GitHub Secrets.

Comment créer des principaux de service Azure à utiliser ?

Pour provisionner et déployer des ressources ciblant Azure dans CI/CD, vous devez créer un principal de service Azure à utiliser.

Procédez comme suit pour créer des principaux de service Azure :

  1. Inscrire une application Microsoft Entra dans un seul locataire.
  2. Attribuez un rôle à votre application Microsoft Entra pour accéder à votre abonnement Azure. Le rôle Contributor est recommandé.
  3. Créez un secret d’application Microsoft Entra.

Conseil

Enregistrez votre ID de locataire, l’ID d’application (AZURE_SERVICE_PRINCIPAL_NAME) et le secret (AZURE_SERVICE_PRINCIPAL_PASSWORD) pour une utilisation ultérieure.

Pour plus d’informations, consultez Instructions relatives aux principaux de service Azure. Les trois méthodes suivantes permettent de créer des principaux de service :

Publier une application Teams à l’aide de Teams Developer Portal

Si des modifications sont apportées au fichier manifeste de l’application Teams, vous pouvez mettre à jour le manifeste et publier à nouveau l’application Teams. Pour publier l’application Teams manuellement, vous pouvez utiliser le Portail des développeurs pour Teams.

Procédez comme suit pour publier votre application :

  1. Connectez-vous au portail Developer pour Teams en utilisant le compte correspondant.
  2. Importez votre package d’application en zip, sélectionnez App>Import app>Replace.
  3. Sélectionnez l’application cible dans la liste des applications.
  4. Pour publier votre application, sélectionnez Publier Publier>dans votre organisation.

Voir aussi