Konfigurieren von Pipelines für die sichere Verwendung von Variablen und Parametern
In diesem Lab lernen Sie, wie Sie Pipelines für die sichere Verwendung von Variablen und Parametern konfigurieren.
Diese Übung dauert ca. 20 Minuten.
Vorbereitung
Sie benötigen ein Azure-Abonnement, eine Azure DevOps-Organisation und die eShopOnWeb-Anwendung, um den Labs zu folgen.
- Folgen Sie den Schritten, um Ihre Lab-Umgebung zu überprüfen.
Anweisungen
Übung 1: Sicherstellen von Parameter- und Variablentypen
Übung 1: Importieren und Ausführen der CI-Pipeline
Importieren Sie zunächst die CI-Pipeline mit dem Namen eshoponweb-ci.ymll.
-
Navigieren Sie zum Azure DevOps-Portal unter
https://dev.azure.com
und öffnen Sie Ihre Organisation. -
Öffnen Sie das Projekt eShopOnWeb.
-
Navigieren Sie zu Pipelines > Pipelines.
-
Wählen Sie Pipeline erstellen aus.
-
Wählen Sie Azure Repos Git (Yaml).
-
Wählen Sie das Repository eShopOnWeb aus.
-
Wählen Sie die Option Vorhandene Azure Pipelines-YAML-Datei aus.
-
Wählen Sie die Datei /.ado/eshoponweb-ci.yml und dann Weiter aus.
-
Klicken Sie auf die Schaltfläche Ausführen, um die Pipeline auszuführen.
[!NOTE] Ihre Pipeline nimmt einen Namen auf der Grundlage des Projektnamens an. Benennen Sie sie um, um die Pipeline besser zu identifizieren.
-
Wechseln Sie zu Pipelines > Pipelines und wählen Sie die zuletzt erstellte Pipeline aus. Wählen Sie die Auslassungspunkte und die Option Umbenennen/Verschieben aus.
-
Nennen Sie sie eshoponweb-ci-parameters, und wählen Sie Speichern aus.
Aufgabe 2: Sicherstellen von Parametertypen für YAML-Pipelines
In dieser Aufgabe legen Sie Parameter- und Parametertypen für die Pipeline fest.
-
Wechseln Sie zu Pipelines > Pipelines, und wählen Sie die eshoponweb-ci-parameters-Pipeline aus.
-
Wählen Sie Bearbeiten aus.
-
Fügen Sie die folgenden Abschnitte „Parameter“ und „Ressourcen“ am Anfang der YAML-Datei hinzu:
parameters: - name: dotNetProjects type: string default: '**/*.sln' - name: testProjects type: string default: 'tests/UnitTests/*.csproj' resources: repositories: - repository: self trigger: none
-
Ersetzen Sie die hartcodierten Pfade in den Aufgaben
Restore
,Build
undTest
durch die soeben erstellten Parameter.- Projekte ersetzen:
**/*.sln
mit Projekten:$
in den AufgabenRestore
undBuild
; - Projekte ersetzen:
tests/UnitTests/*.csproj
mit Projekten:$
in der AufgabeTest
;
Die Aufgaben
Restore
,Build
undTest
im Abschnitt „Schritte“ der YAML-Datei sollten wie folgt aussehen:steps: - task: DotNetCoreCLI@2 displayName: Restore inputs: command: 'restore' projects: ${{ parameters.dotNetProjects }} feedsToUse: 'select' - task: DotNetCoreCLI@2 displayName: Build inputs: command: 'build' projects: ${{ parameters.dotNetProjects }} - task: DotNetCoreCLI@2 displayName: Test inputs: command: 'test' projects: ${{ parameters.testProjects }}
- Projekte ersetzen:
-
Speichern Sie die Pipeline, und führen Sie sie aus. Stellen Sie sicher, dass die Pipelineausführung erfolgreich abgeschlossen wird.
Aufgabe 3: Variablen und Parameter sichern
In dieser Aufgabe sichern Sie die Variablen und Parameter aus Ihrer Pipeline mithilfe von Variablengruppen.
-
Wechseln Sie zu Pipelines > Library.
-
Wählen Sie die Schaltfläche + Variablengruppe aus, um eine neue Variablengruppe mit dem Namen BuildConfigurations zu erstellen.
-
Fügen Sie eine Variable mit dem Namen buildConfiguration hinzu, und legen Sie ihren Wert fest auf
Release
. -
Speichern Sie die Variablengruppe.
-
Wählen Sie die Schaltfläche Pipelineberechtigungen und dann die Schaltfläche + aus, um eine neue Pipeline hinzuzufügen.
-
Wählen Sie die Pipeline eshoponweb-ci-parameters aus, damit die Pipeline die Variablengruppe verwenden kann.
[!NOTE] Sie können auch festlegen, dass bestimmte Benutzer*innen oder Gruppen die Variablengruppe bearbeiten können, indem Sie auf die Schaltfläche Sicherheit klicken.
-
Navigieren Sie zu Pipelines > Pipelines.
-
Öffnen Sie die Pipeline eshoponweb-ci-parameters, und wählen Sie Bearbeiten aus.
-
Verweisen Sie oben in der YML-Datei direkt unter den Parametern auf die Variablengruppe, indem Sie Folgendes hinzufügen:
variables: - group: BuildConfigurations
-
Ersetzen Sie in der Aufgabe „Erstellen“ den Befehl „Erstellen“ durch die folgenden Zeilen, um die Buildkonfiguration aus der Variablengruppe zu verwenden.
command: 'build' projects: ${{ parameters.dotNetProjects }} configuration: $(buildConfiguration)
-
Speichern Sie die Pipeline, und führen Sie sie aus. Mit folgender Buildkonfiguration sollte sie erfolgreich ausgeführt werden
Release
. Sie können dies überprüfen, indem Sie sich die Protokolle der Aufgabe „Erstellen“ ansehen.
[!NOTE] Auf diese Weise können Sie Ihre Variablen und Parameter mithilfe von Variablengruppen sichern, ohne sie in YAML-Dateien hartcodieren zu müssen.
Aufgabe 4: Obligatorische Variablen und Parameter überprüfen
In dieser Aufgabe überprüfen Sie die obligatorischen Variablen, bevor die Pipeline ausgeführt wird.
-
Navigieren Sie zu Pipelines > Pipelines.
-
Öffnen Sie die Pipeline eshoponweb-ci-parameters, und wählen Sie Bearbeiten aus.
-
Fügen Sie im Abschnitt „Phasen“ am Anfang (nach der Zeile
stage:
) eine neue Phase mit dem Namen Validate hinzu, um die obligatorischen Variablen zu überprüfen, bevor die Pipeline ausgeführt wird.- stage: Validate displayName: Validate mandatory variables jobs: - job: ValidateVariables pool: vmImage: ubuntu-latest steps: - script: | if [ -z "$(buildConfiguration)" ]; then echo "Error: buildConfiguration variable is not set" exit 1 fi displayName: 'Validate Variables'
[!NOTE] In dieser Phase wird ein Skript ausgeführt, um die buildConfiguration-Variable zu überprüfen. Wenn die Variablen nicht festgelegt sind, schlägt das Skript fehl, und die Pipeline wird beendet.
-
Stellen Sie sicher, dass die Build-Phase von der Validate-Phase abhängig ist, indem Sie
dependsOn: Validate
am Anfang der Build-Phase hinzufügen:- stage: Build displayName: Build .Net Core Solution dependsOn: Validate
-
Speichern Sie die Pipeline, und führen Sie sie aus. Sie wird erfolgreich ausgeführt, da die buildConfiguration-Variable in der Variablengruppe festgelegt ist.
-
Um die Überprüfung zu testen, entfernen Sie die buildConfiguration-Variable aus der Variablengruppe, oder löschen Sie die Variablengruppe, und führen Sie die Pipeline erneut aus. Bei folgendem Fehler sollte es fehlschlagen:
Error: buildConfiguration variable is not set
-
Fügen Sie die Variablengruppe und die buildConfiguration-Variable wieder zur Variablengruppe hinzu, und führen Sie die Pipeline erneut aus. Es sollte erfolgreich ausgeführt werden.
Überprüfung
In diesem Lab haben Sie gelernt, wie Sie Pipelines für die sichere Verwendung von Variablen und Parametern konfigurieren und wie Sie obligatorische Variablen und Parameter überprüfen.