Mit einem Cloud Build-Trigger können Sie automatisch einen Build starten und einen Workflow aus einem Git-Repository bereitstellen. Sie können den Trigger so konfigurieren, dass Ihr Workflow bei jeder Änderung am Quell-Repository bereitgestellt wird oder nur dann, wenn die Änderung bestimmte Kriterien erfüllt.
Dieser Ansatz kann Ihnen helfen, den Lebenszyklus Ihrer Bereitstellung zu verwalten. Sie können beispielsweise Änderungen an einem Workflow in einer Staging-Umgebung bereitstellen, Tests in dieser Umgebung ausführen und diese Änderungen dann schrittweise in der Produktionsumgebung einführen.
Hinweis
Bei diesen Anleitungen wird davon ausgegangen, dass Sie in Ihrem Google Cloud Projekt die
Rolle „Cloud Build-Editor“
(roles/cloudbuild.builds.editor) haben, damit Sie
Trigger erstellen können. Außerdem benötigen Sie einen Workflow in einem Quell-Repository wie GitHub oder Bitbucket.
Console
Aktivieren Sie die Cloud Build und Workflows APIs.
Weisen Sie dem Cloud Build-Dienstkonto die Rolle „Workflows-Administrator“ (
roles/workflows.admin) zu:Rufen Sie in der Google Cloud Console die Seite IAM auf.
Wählen Sie Ihr Projekt aus.
Klicken Sie in der Zeile für das Cloud Build-Dienstkonto (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com), auf Hauptkonto bearbeiten.Klicken Sie auf Weitere Rolle hinzufügen.
Wählen Sie in der Liste Rolle die Rolle Workflows-Administrator aus.
Klicken Sie auf Speichern.
Weisen Sie dem Cloud Build-Dienstkonto die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser) für das Compute Engine-Standarddienstkonto zu. Wenn Sie die Compute Engine API aktiviert haben, ist das Compute Engine-StandarddienstkontoPROJECT_NUMBER-compute@developer.gserviceaccount.com.Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Wählen Sie Ihr Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Compute Engine-Standarddienstkontos (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).Klicken Sie auf den Tab Berechtigungen.
Klicken Sie auf die Schaltfläche „ Zugriff gewähren“.
Geben Sie die E-Mail-Adresse Ihres Dienstkontos (
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com) ein, um ein neues Hauptkonto hinzuzufügen.Wählen Sie in der Liste Rolle auswählen die Rolle Dienstkonten > Dienstkontonutzer aus.
Klicken Sie auf Speichern.
gcloud
Aktivieren Sie die Cloud Build und Workflows APIs.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.comWeisen Sie dem Cloud Build-Dienstkonto die Rolle „ Workflows-Administrator “ (
roles/workflows.admin) zu:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@clogserviceaccount.comudbuild. \ --role=roles/workflows.adminErsetzen Sie
PROJECT_IDdurch die ID Ihres Google Cloud Projekts.Weisen Sie dem Cloud Build-Dienstkonto die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser) für das Compute Engine-Standarddienstkonto zu. Wenn Sie die Compute Engine API aktiviert haben, ist das Compute Engine-StandarddienstkontoPROJECT_NUMBER-compute@developer.gserviceaccount.com.gcloud iam service-accounts add-iam-policy-binding \ $PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/iam.serviceAccountUser
Mit dem Quell-Repository verbinden
Sie müssen Cloud Build mit Ihrem Quell-Repository verbinden, damit Cloud Build Builds als Reaktion auf Ereignisse im Repository automatisieren kann.
Gehen Sie so vor, um eine Verbindung zu GitHub oder Bitbucket herzustellen:
Rufen Sie in der Google Cloud Console die Seite Triggers (Trigger) von Cloud Build auf:
Wählen Sie gegebenenfalls Ihr Projekt aus und klicken Sie auf Öffnen.
Wählen Sie in der Liste Region die Region aus, in der Sie den Trigger erstellen möchten.
Klicken Sie auf Repository verbinden.
Wählen Sie das Quell-Repository aus, in dem Sie den Quellcode gespeichert haben.
Beispiel: GitHub (Cloud Build GitHub App)
Klicken Sie auf Weiter.
Authentifizieren Sie sich mit Ihrem Nutzernamen und Passwort in Ihrem Quell-Repository.
Wenn Sie sich in GitHub anmelden, werden Sie aufgefordert, der Google Cloud Build GitHub-Anwendung Zugriff auf Ihr GitHub-Konto zu gewähren, um fortzufahren.
Wählen Sie aus der Liste der verfügbaren Repositorys das gewünschte Repository aus und klicken Sie auf OK.
Bei externen Repositories wie GitHub und Bitbucket benötigen Sie für das verwendete Google Cloud Projekt Berechtigungen auf Inhaberebene.
Lesen Sie den Haftungsausschluss und klicken Sie anschließend das Kästchen daneben an, um die Nutzungsbedingungen zu akzeptieren.
Klicken Sie auf Verbinden.
Klicken Sie auf Trigger erstellen , um weiterhin einen Build-Trigger zu erstellen, mit dem Builds für den Quellcode im Repository automatisiert werden. Klicken Sie andernfalls auf Fertig.
Cloud Build-Konfigurationsdatei erstellen
Eine Build-Konfigurationsdatei definiert die Felder, die erforderlich sind, wenn ein Build mit einem Build-Trigger gestartet wird. Erstellen Sie die Konfigurationsdatei im Stammverzeichnis Ihres Projekts und schreiben Sie sie in YAML oder JSON.
Die folgende Konfigurationsdatei stellt beispielsweise einen Testworkflow bereit und führt ihn aus. Anschließend wird mit einem Skript die Ausgabe geprüft. Wenn der Test erfolgreich ist, wird der Workflow bereitgestellt:
Die $BRANCH_NAME und $SHORT_SHA
Substitutionsvariablen
werden von Cloud Build ersetzt, wenn ein Build aus einem Git
Repository ausgelöst wird. Sie stellen den Namen Ihres Zweigs bzw. die ersten sieben Zeichen der Commit-ID dar, die mit Ihrem Build verknüpft ist.
Mit der Substitutionsvariablen $_WORKFLOW_NAME können Sie eine Konfigurationsdatei mit verschiedenen Variablenwerten wiederverwenden. Sie können den Wert festlegen, wenn Sie den Build-Trigger erstellen.
Weitere Informationen finden Sie unter Build-Konfigurationsdatei erstellen.
Build-Trigger erstellen
Sie können die Bereitstellung Ihres Workflows automatisieren, indem Sie einen Cloud Build-Trigger erstellen.
So erstellen Sie einen Build-Trigger für die Konfigurationsdatei im vorherigen Abschnitt:
Rufen Sie in der Google Cloud Console die Seite Cloud Build Triggers auf:
Klicken Sie auf Trigger erstellen.
Geben Sie im Feld Name einen Namen für den Trigger ein.
Wählen Sie unter Ereignis das Ereignis aus, das den Trigger auslösen soll.
Beispiel: Per Push-Befehl an Zweig übertragen
Wählen Sie unter Quelle Ihr Repository und den Branch- oder Tag-Namen aus, der den Trigger auslöst. Sie können einen regulären Ausdruck verwenden, um eine Übereinstimmung mit einem Branch oder Tag anzugeben.
Beispiel:
GoogleCloudPlatform/workflows-demos(Repository) und^main$|^staging$(entspricht den Zweigenmainundstaging)Maximieren Sie den Abschnitt Filter für einbezogene und ignorierte Dateien anzeigen und geben Sie Ihren Workflow als einbezogene Datei an, damit bei Änderungen ein Build ausgelöst wird.
Beispiel:
gitops/workflow.yamlWählen Sie unter Konfiguration als Typ Cloud Build Konfigurationsdatei (YAML oder JSON) und als Speicherort Repository aus.
Geben Sie im Feld Speicherort der Cloud Build-Konfigurationsdatei den Speicherort Ihrer Datei an.
Beispiel:
gitops/cloudbuild.yamlOptional: Klicken Sie zum Hinzufügen einer Substitutionsvariablen auf Variable hinzufügen und geben Sie eine Kombination aus Schlüssel und Wert an.
Beispiel:
_WORKFLOW_NAME(Variable) undworkflows-gitops(Wert)Klicken Sie auf Erstellen, um den Build-Trigger zu speichern.
Wenn Änderungen an einem Workflow im angegebenen Zweig des Git-Repositorys übertragen werden, wird automatisch Cloud Build ausgelöst, um den Workflow bereitzustellen.
Weitere Informationen finden Sie unter Build-Trigger erstellen und verwalten.
Build-Trigger testen
Sie können den Build-Trigger und die Konfigurationsdatei aus den vorherigen Abschnitten testen.
Bearbeiten Sie im Zweig
stagingdes Git-Repositorys die Dateiworkflow.yamlund ändern SieHello WorldinBye World:Übertragen Sie die Änderung per Commit und Push in den Zweig
staging.git add workflow.yaml git commit -m "Update workflow.yaml in staging"git pushDer Cloud Build-Trigger wird ausgeführt und startet einen Build.
Rufen Sie in der Google Cloud Console die Seite Build-Verlauf auf, um zu prüfen, ob der Build erfolgreich war:
Sobald ein Build abgeschlossen ist, stellt Cloud Build einen allgemeinen Status für den Build und für jeden einzelnen Build-Schritt bereit. Weitere Informationen finden Sie unter Build-Ergebnisse ansehen.
Rufen Sie in der Google Cloud Console die Seite Workflows auf, um zu prüfen, ob ein Staging-Workflow bereitgestellt wurde:
Ein Workflow mit dem Namen
workflows-gitops-stagingsollte aufgeführt sein.Wenn Sie den Staging-Workflow in der Produktionsumgebung bereitstellen möchten, führen Sie den Zweig
stagingmit dem Zweigmainzusammen:git checkout main git merge staging git pushDa
test-main.shin der Ausgabe des WorkflowsHello Worlderwartet, schlägt der Build fehl:Wenn Sie einen Produktionsworkflow erfolgreich bereitstellen möchten, bearbeiten Sie die Datei
workflow.yamlim Zweigstagingnoch einmal und ändern Sie die Zeichenfolge wieder inHello World.Übertragen Sie die Änderung per Commit und Push in den Zweig
stagingund führen Sie dann den Zweigstagingmit dem Zweigmainzusammen.Rufen Sie in der Google Cloud Console die Seite Workflows auf, um zu prüfen, ob ein Produktionsworkflow bereitgestellt wurde:
Ein Workflow mit dem Namen
workflows-gitops-mainsollte aufgeführt sein.
Nächste Schritte
- Weitere Informationen zu Cloud Build.
- Build-Fehler beheben
- Fehlerbehebung bei Workflows