Einrichten von CI/CD-Pipelines

TeamsFx hilft bei der Automatisierung Ihres Entwicklungsworkflows beim Erstellen von Teams-Anwendungen. Die Tools und Vorlagen zum Einrichten von CI/CD-Pipelines sind das Erstellen von Workflowvorlagen und das Anpassen des CI/CD-Workflows mit GitHub, Azure DevOps, Jenkins und anderen Plattformen. Zum Bereitstellen von Ressourcen können Sie Azure-Dienstprinzipale erstellen und die Bereitstellungspipeline verwenden oder dies manuell mithilfe von Bicep-Dateien tun. Um die Teams-App zu veröffentlichen, können Sie die Veröffentlichungspipeline verwenden oder dies manuell mithilfe des Entwicklerportals für Teams tun.

Tools und Vorlagen

Tools und Vorlagen Beschreibung
TeamsFx CLI-Action GitHub-Aktion, die in teamsFx CLI integriert ist.
Microsoft Teams-Toolkit-Erweiterung für Visual Studio Code Visual Studio Code-Erweiterung, die Sie bei der Entwicklung von Teams-Apps und Automatisierungsworkflows für GitHub, Azure DevOps und Jenkins unterstützt.
Teams Toolkit für CLI Kommandozeilen-Tool, das Sie bei der Entwicklung von Teams-Apps und Automatisierungsworkflows für GitHub, Azure DevOps und Jenkins unterstützt.
github/ci.yml
github/cd.azure.yml
github/cd.spfx.yml
github/provision.azure.yml
github/provision.spfx.yml
github/publish.yml
Vorlagen für die Automatisierung auf GitHub.
azdo/ci.yml
azdo/cd.azure.yml
azdo/cd.spfx.yml
azdo/provision.azure.yml
azdo/provision.spfx.yml
azdo/publish.yml
Vorlagen für die Automatisierung in Azure DevOps.
jenkins/Jenkinsfile.ci
jenkins/Jenkinsfile.azure.cd
jenkins/Jenkinsfile.spfx.cd
jenkins/Jenkinsfile.azure.provision
jenkins/Jenkinsfile.spfx.provision
jenkins/Jenkinsfile.publish
Vorlagen für die Automatisierung auf Jenkins.
others/ci.sh
others/cd.azure.sh
others/cd.spfx.sh
others/provision.azure.sh
others/provision.spfx.sh
others/publish.sh
Skriptvorlagen für die Automatisierung außerhalb von GitHub, Azure DevOps oder Jenkins.

Einrichten von Pipelines

Sie können Pipelines mit den folgenden Plattformen einrichten:

  1. Einrichten von Workflows mit GitHub
  2. Einrichten von Pipelines mit Azure DevOps
  3. Einrichten von Pipelines mit Jenkins
  4. Einrichten von Pipelines für andere Plattformen

Workflowvorlagentypen

TeamsFx unterstützt vier Arten von Workflowvorlagen:

  • CI: Hilfe beim Auschecken von Code, Erstellen und Ausführen von Tests.
  • CD: Hilfe beim Auschecken von Code, Erstellen, Testen und Bereitstellen in der Cloud.
  • Bereitstellen: Helfen Sie beim Erstellen oder Aktualisieren von Ressourcen in Cloud- und Teams-App-Registrierungen.
  • Veröffentlichen: Helfen Sie beim Veröffentlichen der Teams-App in Mandanten.

Vorbereiten von Anmeldeinformationen

An CI/CD-Workflows sind zwei Kategorien von Anmeldeinformationen beteiligt:

  • Microsoft 365: Microsoft 365-Anmeldeinformationen sind erforderlich, um die CD-Workflows für Bereitstellung, Veröffentlichung und SPFx-basierte Projekte auszuführen.
  • Azure: Azure-Anmeldeinformationen sind für die Ausführung von Bereitstellungs- und CD-Workflows für gehostete Azure-Projekte erforderlich.

Hinweis

Die Azure-Abonnement-ID muss in Umgebungsvariablen oder env/.env.* -dateien festgelegt werden, bevor Bereitstellungsworkflows ausgeführt werden. Der verwendete Variablenname lautet AZURE_SUBSCRIPTION_ID. Vergessen Sie außerdem nicht, Dateien env/.env.* in Git-Repositorys zu committen und zu pushen oder die Umgebungsvariablen der Pipelines festzulegen, da sie standardmäßig von .gitignore der Datei ignoriert werden.

Name Beschreibung
AZURE_SERVICE_PRINCIPAL_NAME Der Dienstprinzipalname von Azure, der zum Bereitstellen von Ressourcen verwendet wird.
AZURE_SERVICE_PRINCIPAL_PASSWORD Das Kennwort des Azure-Dienstprinzipals.
AZURE_SUBSCRIPTION_ID Um das Abonnement zu identifizieren, in dem die Ressourcen bereitgestellt werden sollen.
AZURE_TENANT_ID Um den Mandanten zu identifizieren, in dem sich das Abonnement befindet.
M365_ACCOUNT_NAME Das Microsoft 365-Konto zum Erstellen und Veröffentlichen der Teams-App.
M365_ACCOUNT_PASSWORD Das Kennwort des Microsoft 365-Kontos.
M365_TENANT_ID Um den Mandanten zu identifizieren, in dem die Teams-App erstellt oder veröffentlicht wird. Dieser Wert ist optional, es sei denn, Sie verfügen über ein mehrinstanzenfähiges Konto und möchten einen anderen Mandanten verwenden. Erfahren Sie mehr darüber, wie Sie Ihre Microsoft 365-Mandanten-ID finden.

Hinweis

  • Derzeit wird ein nicht interaktiver Authentifizierungsstil für Microsoft 365 in CI/CD-Workflows verwendet. Stellen Sie daher sicher, dass Ihr Microsoft 365-Konto über ausreichende Berechtigungen in Ihrem Mandanten verfügt und keine mehrstufige Authentifizierung oder andere erweiterte Sicherheitsfeatures aktiviert ist. Überprüfen Sie unter Konfigurieren von Microsoft 365-Anmeldeinformationen , um sicherzustellen, dass Sie multi-factor authentication and Security Defaults (Multi-Factor Authentication und Sicherheitsstandards) für die im Workflow verwendeten Anmeldeinformationen deaktiviert haben.
  • Derzeit wird der Dienstprinzipal für Azure in CI/CD-Workflows verwendet. Informationen zum Erstellen von Azure-Dienstprinzipalen finden Sie hier.

Hosttypen

Vorlagen variieren je nach Hosttypen (Azure oder SPFx), wobei Bereitstellungs- und CD-Workflowvorlagen in Kopien aufgeteilt werden. CI- und Veröffentlichungsworkflowvorlagen sind vom Hosttyp unabhängig. Wenn Sie an in Azure gehosteten Projekten arbeiten, laden Sie diese Vorlagen mit dem Dateinamen Infixes azure herunter. Wenn Sie an spFx gehosteten Projekten arbeiten, laden Sie diese Vorlagen mit dem Dateinamen Infixes spfx herunter.

Einrichten von Workflows mit GitHub

So richten Sie Pipelines mit GitHub für CI/CD ein:

  • Erstellen von CI/CD-Workflows
  • Anpassen von CI/CD-Workflows.

Erstellen von CI/CD-Workflows

  1. Laden Sie die entsprechenden Vorlagendateien unter Tools und Vorlagen herunter.
  2. Benennen Sie die heruntergeladenen Vorlagendateien nach Ihren Anforderungen um.
  3. Legen Sie sie unter .github/workflowsab. Dies ist der angegebene Ordner für GitHub Actions.
  4. Committen Sie diese Vorlagendateien, und pushen Sie sie in Remoterepositorys.
  5. Fügen Sie die erforderlichen verschlüsselten Geheimnisse für Ihre Workflows hinzu.
  6. Lösen Sie Ihre Workflows aus. Weitere Informationen zum Auslösen eines Workflows finden Sie auf GitHub.

Anpassen des CI-Workflows

Zum Anpassen des CI-Workflows können Sie die folgenden Schritte ausführen:

  1. Ändern des Triggers: Standardmäßig wird der CI-Workflow ausgelöst, wenn ein neuer Pull Request für dev branch erstellt wird.
  2. Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der Build the project Schritt kommentiert.
  3. Hinzufügen von Skripts zum Ausführen von Komponententests: Standardmäßig wird der Run unit test Schritt kommentiert.

Anpassen des CD-Workflows

Zum Anpassen des CD-Workflows können Sie die folgenden Schritte ausführen:

  1. Ändern des Triggers: Standardmäßig wird der CD-Workflow ausgelöst, wenn neue Commits per Push in main branch übertragen werden.
  2. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_ENV_NAME: Standardmäßig ist devder Wert .
  3. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_CLI_VERSION: Standardmäßig ist 2.*der Wert .
  4. Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der Build the project Schritt kommentiert.
  5. Hinzufügen von Skripts zum Ausführen von Komponententests: Standardmäßig wird der Run unit test Schritt kommentiert.

Anpassen des Bereitstellungs- und Veröffentlichungsworkflows

Zum Anpassen des Workflows "Bereitstellen und Veröffentlichen" können Sie die folgenden Schritte ausführen:

  1. Ändern des Triggers: Standardmäßig wird der Workflow manuell ausgelöst.
  2. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_ENV_NAME: Standardmäßig ist devder Wert .
  3. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_CLI_VERSION: Standardmäßig ist 2.*der Wert .

Einrichten von Pipelines mit Azure DevOps

So richten Sie Pipelines mit Azure DevOps für CI/CD ein:

  • Erstellen von CI/CD-Pipelines
  • Anpassen von CI/CD-Pipelines

Erstellen von CI/CD-Pipelines

  1. Laden Sie die entsprechenden Vorlagendateien unter Tools und Vorlagen herunter.
  2. Benennen Sie die heruntergeladenen Vorlagendateien nach Ihren Anforderungen um.
  3. Legen Sie sie unter .azure/pipelinesab. Dies ist der herkömmliche Ordner für Azure Pipelines.
  4. Committen Sie diese Vorlagendateien, und pushen Sie sie in Remoterepositorys.
  5. Erstellen Sie entsprechende Azure DevOps-Pipelines, indem Sie unter Erstellen Ihrer ersten Azure DevOps-Pipeline vorgehen.
  6. Fügen Sie die erforderlichen Azure DevOps-Pipelinevariablen für Ihre Pipelines hinzu.
  7. Lösen Sie Ihre Pipelines automatisch, manuell oder anpassen aus (überprüfen Sie den trigger: Abschnitt oder pr: in yml-Dateien, um die Trigger zu finden). Weitere Informationen zu Triggern in Azure DevOps finden Sie unter Trigger in Azure Pipelines.

Anpassen der CI-Pipeline

Zum Anpassen der CI-Pipeline können Sie die folgenden Schritte ausführen:

  1. Ändern des Triggers: Standardmäßig wird die CI-Pipeline ausgelöst, wenn ein neuer Pull Request für dev branch erstellt wird.
  2. Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der Build the project Schritt kommentiert.
  3. Hinzufügen von Skripts zum Ausführen von Komponententests: Standardmäßig wird der Run unit test Schritt kommentiert.

Anpassen der CD-Pipeline

Zum Anpassen der CD-Pipeline können Sie wie folgt vorgehen:

  1. Ändern des Triggers: Standardmäßig wird die CD-Pipeline ausgelöst, wenn neue Commits per Push in main branch übertragen werden.
  2. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_ENV_NAME: Standardmäßig ist devder Wert .
  3. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_CLI_VERSION: Standardmäßig ist 2.*der Wert .
  4. Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der Build the project Schritt kommentiert.
  5. Hinzufügen von Skripts zum Ausführen von Komponententests: Standardmäßig wird der Run unit test Schritt kommentiert.

Anpassen von Bereitstellungs- und Veröffentlichungspipelines

Zum Anpassen der Bereitstellungs- und Veröffentlichungspipeline können Sie wie folgt vorgehen:

  1. Ändern des Triggers: Standardmäßig wird der Workflow manuell ausgelöst.
  2. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_ENV_NAME: Standardmäßig ist devder Wert .
  3. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_CLI_VERSION: Standardmäßig ist 2.*der Wert .

Einrichten von Pipelines mit Jenkins

So richten Sie Pipelines mit Jenkins für CI/CD ein:

  • Erstellen von CI/CD-Pipelines
  • Anpassen von CI/CD-Pipelines

Erstellen von CI/CD-Pipelines

  1. Laden Sie die entsprechenden Vorlagendateien unter Tools und Vorlagen herunter.
  2. Benennen Sie die heruntergeladenen Vorlagendateien nach Ihren Anforderungen um.
  3. Legen Sie sie unter .jenkins/pipelinesab. Dies kann ein herkömmlicher Ordner für Jenkins-Pipelines sein.

Anpassen der CI-Pipeline

Zum Anpassen der CI-Pipeline können Sie die folgenden Schritte ausführen:

  1. Ändern des Triggers: Standardmäßig wird die CI-Pipeline in regelmäßigen Abständen ausgelöst.
  2. Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der Build the project Schritt kommentiert.
  3. Hinzufügen von Skripts zum Ausführen von Komponententests: Standardmäßig wird der Run unit test Schritt kommentiert.

Anpassen der CD-Pipeline

Zum Anpassen der CD-Pipeline können Sie wie folgt vorgehen:

  1. Ändern des Triggers: Standardmäßig wird die CD-Pipeline in regelmäßigen Abständen ausgelöst.
  2. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_ENV_NAME: Standardmäßig ist devder Wert .
  3. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_CLI_VERSION: Standardmäßig ist 2.*der Wert .
  4. Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der Build the project Schritt kommentiert.
  5. Hinzufügen von Skripts zum Ausführen von Komponententests: Standardmäßig wird der Run unit test Schritt kommentiert.

Anpassen von Bereitstellungs- und Veröffentlichungspipelines

Zum Anpassen der Bereitstellungs- und Veröffentlichungspipeline können Sie wie folgt vorgehen:

  1. Ändern des Triggers: Standardmäßig wird die Pipeline in regelmäßigen Abständen ausgelöst.
  2. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_ENV_NAME: Standardmäßig ist devder Wert .
  3. Ändern Sie den Wert der Umgebungsvariablen TEAMSFX_CLI_VERSION: Standardmäßig ist 2.*der Wert .

Einrichten von Pipelines für andere Plattformen

Sie können den vordefinierten aufgelisteten Bash-Skripts unter Tools und Vorlagen folgen, um CI/CD-Pipelines auf den anderen Plattformen zu erstellen und anzupassen:

Die Skripts basieren auf einem plattformübergreifenden TeamsFx-Befehlszeilentool: TeamsFx CLI. Sie können es mit npm install -g @microsoft/teamsfx-cli installieren und der Dokumentation folgen, um die Skripts anzupassen.

Hinweis

  • Um die Ausführung von @microsoft/teamsfx-cli im CI-Modus zu ermöglichen, aktivieren Sie CI_ENABLED durch export CI_ENABLED=true. Im CI-Modus ist @microsoft/teamsfx-cli für CI/CD geeignet.
  • Um die Ausführung von @microsoft/teamsfx-cli im nicht interaktiven Modus zu ermöglichen, legen Sie eine globale Konfiguration mit folgendem Befehl fest: teamsfx config set -g interactive false. Im nicht interaktiven Modus @microsoft/teamsfx-cli fordert keine Eingaben auf.

Stellen Sie sicher, dass die Azure- und Microsoft 365-Anmeldeinformationen in Ihren Umgebungsvariablen sicher eingerichtet wurden. Wenn Sie zum Beispiel GitHub als Quellcode-Repository verwenden, lesen Sie bitteGitHub Secrets.

Erstellen von Azure-Dienstprinzipalen zur Verwendung

Um Ressourcen für Azure innerhalb von CI/CD bereitzustellen, müssen Sie einen Azure-Dienstprinzipal erstellen und verwenden.

Führen Sie die folgenden Schritte aus, um Azure-Dienstprinzipale zu erstellen:

  1. Registrieren Sie eine Microsoft Azure Active Directory -Anwendung (Azure AD) in einem einzelnen Mandanten.
  2. Weisen Sie Ihrer Azure AD-Anwendung eine Rolle zu, um auf Ihr Azure-Abonnement zuzugreifen. Die Rolle Contributor wird empfohlen.
  3. Erstellen Sie ein neues Azure AD-Anwendungsgeheimnis.

Tipp

Speichern Sie Ihre Mandanten-ID, Anwendungs-ID (AZURE_SERVICE_PRINCIPAL_NAME) und den geheimen Schlüssel (AZURE_SERVICE_PRINCIPAL_PASSWORD) für die zukünftige Verwendung.

Weitere Informationen finden Sie in den Richtlinien für Azure-Dienstprinzipale. Es folgen die drei Möglichkeiten zum Erstellen von Dienstprinzipalen:

Veröffentlichen einer Microsoft Teams-App mit dem Microsoft Teams-Entwicklerportal

Wenn Änderungen an der Manifestdatei der Microsoft Teams-App vorliegen, können Sie das Manifest aktualisieren und die Microsoft Teams-App erneut veröffentlichen. Um eine Microsoft Teams-App manuell zu veröffentlichen, können Sie das Entwicklerportal für Microsoft Teams nutzen.

Führen Sie die folgenden Schritte aus, um Ihre App zu veröffentlichen:

  1. Melden Sie sich beim Entwicklerportal für Microsoft Teams mit dem entsprechenden Konto an.
  2. Importieren Sie Ihr App-Paket in ZIP, und wählen Sie App>importieren App>ersetzen aus.
  3. Wählen Sie die Ziel-App in der App-Liste aus.
  4. Um Ihre App zu veröffentlichen, wählen Sie Veröffentlichen>In Ihrer Organisation veröffentlichen aus.

Siehe auch