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:
- Einrichten von Workflows mit GitHub
- Einrichten von Pipelines mit Azure DevOps
- Einrichten von Pipelines mit Jenkins
- 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
- Laden Sie die entsprechenden Vorlagendateien unter Tools und Vorlagen herunter.
- Benennen Sie die heruntergeladenen Vorlagendateien nach Ihren Anforderungen um.
- Legen Sie sie unter
.github/workflows
ab. Dies ist der angegebene Ordner für GitHub Actions. - Committen Sie diese Vorlagendateien, und pushen Sie sie in Remoterepositorys.
- Fügen Sie die erforderlichen verschlüsselten Geheimnisse für Ihre Workflows hinzu.
- 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:
- Ändern des Triggers: Standardmäßig wird der CI-Workflow ausgelöst, wenn ein neuer Pull Request für
dev
branch erstellt wird. - Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der
Build the project
Schritt kommentiert. - 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:
- Ändern des Triggers: Standardmäßig wird der CD-Workflow ausgelöst, wenn neue Commits per Push in
main
branch übertragen werden. - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_ENV_NAME
: Standardmäßig istdev
der Wert . - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_CLI_VERSION
: Standardmäßig ist2.*
der Wert . - Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der
Build the project
Schritt kommentiert. - 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:
- Ändern des Triggers: Standardmäßig wird der Workflow manuell ausgelöst.
- Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_ENV_NAME
: Standardmäßig istdev
der Wert . - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_CLI_VERSION
: Standardmäßig ist2.*
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
- Laden Sie die entsprechenden Vorlagendateien unter Tools und Vorlagen herunter.
- Benennen Sie die heruntergeladenen Vorlagendateien nach Ihren Anforderungen um.
- Legen Sie sie unter
.azure/pipelines
ab. Dies ist der herkömmliche Ordner für Azure Pipelines. - Committen Sie diese Vorlagendateien, und pushen Sie sie in Remoterepositorys.
- Erstellen Sie entsprechende Azure DevOps-Pipelines, indem Sie unter Erstellen Ihrer ersten Azure DevOps-Pipeline vorgehen.
- Fügen Sie die erforderlichen Azure DevOps-Pipelinevariablen für Ihre Pipelines hinzu.
- Lösen Sie Ihre Pipelines automatisch, manuell oder anpassen aus (überprüfen Sie den
trigger:
Abschnitt oderpr:
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:
- Ändern des Triggers: Standardmäßig wird die CI-Pipeline ausgelöst, wenn ein neuer Pull Request für
dev
branch erstellt wird. - Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der
Build the project
Schritt kommentiert. - 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:
- Ändern des Triggers: Standardmäßig wird die CD-Pipeline ausgelöst, wenn neue Commits per Push in
main
branch übertragen werden. - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_ENV_NAME
: Standardmäßig istdev
der Wert . - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_CLI_VERSION
: Standardmäßig ist2.*
der Wert . - Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der
Build the project
Schritt kommentiert. - 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:
- Ändern des Triggers: Standardmäßig wird der Workflow manuell ausgelöst.
- Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_ENV_NAME
: Standardmäßig istdev
der Wert . - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_CLI_VERSION
: Standardmäßig ist2.*
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
- Laden Sie die entsprechenden Vorlagendateien unter Tools und Vorlagen herunter.
- Benennen Sie die heruntergeladenen Vorlagendateien nach Ihren Anforderungen um.
- Legen Sie sie unter
.jenkins/pipelines
ab. 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:
- Ändern des Triggers: Standardmäßig wird die CI-Pipeline in regelmäßigen Abständen ausgelöst.
- Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der
Build the project
Schritt kommentiert. - 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:
- Ändern des Triggers: Standardmäßig wird die CD-Pipeline in regelmäßigen Abständen ausgelöst.
- Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_ENV_NAME
: Standardmäßig istdev
der Wert . - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_CLI_VERSION
: Standardmäßig ist2.*
der Wert . - Hinzufügen von Skripts zum Erstellen des Projekts: Standardmäßig wird der
Build the project
Schritt kommentiert. - 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:
- Ändern des Triggers: Standardmäßig wird die Pipeline in regelmäßigen Abständen ausgelöst.
- Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_ENV_NAME
: Standardmäßig istdev
der Wert . - Ändern Sie den Wert der Umgebungsvariablen
TEAMSFX_CLI_VERSION
: Standardmäßig ist2.*
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 SieCI_ENABLED
durchexport 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:
- Registrieren Sie eine Microsoft Azure Active Directory -Anwendung (Azure AD) in einem einzelnen Mandanten.
- Weisen Sie Ihrer Azure AD-Anwendung eine Rolle zu, um auf Ihr Azure-Abonnement zuzugreifen. Die Rolle
Contributor
wird empfohlen. - 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:
- Melden Sie sich beim Entwicklerportal für Microsoft Teams mit dem entsprechenden Konto an.
- Importieren Sie Ihr App-Paket in ZIP, und wählen Sie App>importieren App>ersetzen aus.
- Wählen Sie die Ziel-App in der App-Liste aus.
- Um Ihre App zu veröffentlichen, wählen Sie Veröffentlichen>In Ihrer Organisation veröffentlichen aus.