Vous pouvez utiliser un déclencheur Cloud Build pour lancer automatiquement une compilation et déployer un workflow à partir d'un dépôt Git. Vous pouvez configurer le déclencheur pour déployer votre workflow pour toute modification apportée au dépôt source, ou déployer le workflow uniquement lorsque la modification correspond à des critères spécifiques.
Cette approche peut vous aider à gérer le cycle de vie de votre déploiement. Par exemple, vous pouvez déployer des modifications dans un workflow dans un environnement de préproduction, exécuter des tests sur cet environnement, puis déployer progressivement ces modifications dans l'environnement de production.
Avant de commencer
Ces instructions supposent que vous disposez du rôle Éditeur Cloud Build (roles/cloudbuild.builds.editor
) dans votre projet Google Cloud, ce qui vous permet de créer des déclencheurs. Vous avez également besoin d'un workflow dans un dépôt source tel que GitHub ou Bitbucket.
Console
Activez les API Cloud Build et Workflows.
Attribuez le rôle Administrateur de workflows (
roles/workflows.admin
) au compte de service Cloud Build:Dans la console Google Cloud, accédez à la page IAM.
Sélectionnez votre projet.
Sur la ligne du compte de service Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com
), cliquez sur Modifier le compte principal.Cliquez sur
Ajouter un autre rôle.Dans la liste Rôle, sélectionnez le rôle Administrateur de workflows.
Cliquez sur Enregistrer.
Attribuez le rôle Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service Compute Engine par défaut au compte de service Cloud Build. Une fois l'API Compute Engine activée, le compte de service Compute Engine par défaut estPROJECT_NUMBER-compute@developer.gserviceaccount.com
.Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez votre projet.
Cliquez sur l'adresse e-mail du compte de service Compute Engine par défaut (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Cliquez sur l'onglet Autorisations.
Cliquez sur le bouton Accorder l'accès
.Pour ajouter un compte principal, saisissez l'adresse e-mail de votre compte de service (
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
).Dans la liste Sélectionner un rôle, sélectionnez le rôle Comptes de service > Utilisateur du compte de service.
Cliquez sur Enregistrer.
gcloud
Activez les API Cloud Build et Workflows.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.com
Attribuez le rôle Administrateur de workflows (
roles/workflows.admin
) au compte de service Cloud Build:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/workflows.admin
Remplacez
PROJECT_ID
par l'ID de votre projet Google Cloud.Attribuez le rôle Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service Compute Engine par défaut au compte de service Cloud Build. Une fois l'API Compute Engine activée, le compte de service Compute Engine par défaut estPROJECT_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
Se connecter au dépôt source
Vous devez connecter Cloud Build à votre dépôt source pour que Cloud Build puisse automatiser les compilations en réponse aux événements qui se produisent dans le dépôt.
Pour vous connecter à GitHub ou à Bitbucket, procédez comme suit:
Dans la console Google Cloud, accédez à la page Déclencheurs de Cloud Build:
Si nécessaire, sélectionnez votre projet et cliquez sur Ouvrir.
Dans la liste Région, sélectionnez la région dans laquelle vous souhaitez créer votre déclencheur.
Cliquez sur Connecter un dépôt.
Sélectionnez le dépôt source dans lequel vous avez stocké votre code source.
Par exemple: GitHub (application GitHub Cloud Build)
Cliquez sur Continuer.
Authentifiez-vous auprès de votre dépôt source à l'aide de votre nom d'utilisateur et de votre mot de passe.
Si vous vous connectez à GitHub, vous êtes invité à autoriser l'application GitHub Google Cloud Build à accéder à votre compte GitHub pour pouvoir continuer.
Dans la liste des dépôts disponibles, sélectionnez le dépôt souhaité, puis cliquez sur OK.
Pour les dépôts externes tels que GitHub et Bitbucket, vous devez disposer d'autorisations de niveau propriétaire pour le projet Google Cloud dans lequel vous travaillez.
Lisez la clause de non-responsabilité et cochez la case correspondante pour indiquer que vous acceptez les conditions.
Cliquez sur Connect (Se connecter).
Pour continuer à créer un déclencheur de compilation afin d'automatiser les compilations pour le code source dans le dépôt, cliquez sur Créer un déclencheur. Sinon, cliquez sur OK.
Créer un fichier de configuration Cloud Build
Un fichier de configuration de compilation définit les champs nécessaires lorsque vous utilisez un déclencheur de compilation pour démarrer une compilation. Créez le fichier de configuration dans le répertoire racine de votre projet et écrivez-le en YAML ou JSON.
Par exemple, le fichier de configuration suivant déploie et exécute un workflow de test, puis vérifie le résultat à l'aide d'un script. Si le test réussit, le workflow est déployé:
Les variables de substitution $BRANCH_NAME
et $SHORT_SHA
sont renseignées par Cloud Build lorsqu'une compilation est déclenchée à partir d'un dépôt Git. Ils représentent respectivement le nom de votre branche et les sept premiers caractères de l'ID de commit associé à votre compilation.
La variable de substitution $_WORKFLOW_NAME
vous permet de réutiliser un fichier de configuration avec différentes valeurs de variable. Vous pouvez spécifier sa valeur lorsque vous créez le déclencheur de compilation.
Pour en savoir plus, consultez l'article Créer un fichier de configuration de compilation.
Créer un déclencheur de compilation
Vous pouvez automatiser le déploiement de votre workflow en créant un déclencheur Cloud Build.
Pour créer un déclencheur de compilation pour le fichier de configuration dans la section précédente:
Dans la console Google Cloud, accédez à la page Déclencheurs de Cloud Build:
Cliquez sur Créer un déclencheur.
Dans le champ Nom, saisissez le nom du déclencheur.
Dans le champ Événement, sélectionnez l'événement pour appeler votre déclencheur.
Par exemple: Déployer sur une branche
Dans le champ Source, sélectionnez votre dépôt et le nom de la branche ou du tag qui lancera votre déclencheur. Vous pouvez utiliser une expression régulière pour spécifier une correspondance avec une branche ou un tag.
Par exemple:
GoogleCloudPlatform/workflows-demos
(dépôt) et^main$|^staging$
(correspond aux branchesmain
etstaging
)Développez la section Afficher les filtres de fichiers inclus et ignorés et spécifiez votre workflow en tant que fichier inclus. Ainsi, lorsqu'elle est modifiée, une compilation est appelée.
Par exemple :
gitops/workflow.yaml
Dans le champ Configuration, sélectionnez Fichier de configuration Cloud Build (YAML ou JSON) comme type et Dépôt comme emplacement.
Dans le champ Emplacement du fichier de configuration Cloud Build, spécifiez l'emplacement de votre fichier.
Par exemple :
gitops/cloudbuild.yaml
Si vous souhaitez ajouter une variable de substitution, cliquez sur Ajouter une variable et spécifiez une combinaison clé/valeur.
Par exemple:
_WORKFLOW_NAME
(variable) etworkflows-gitops
(valeur)Pour enregistrer votre déclencheur de compilation, cliquez sur Créer.
Lorsque des modifications sont transmises à un workflow de la branche spécifiée du dépôt Git, cela déclenche automatiquement le déploiement du workflow par Cloud Build.
Pour en savoir plus, consultez la section Créer et gérer des déclencheurs de compilation.
Tester le déclencheur de compilation
Vous pouvez tester le déclencheur de compilation et le fichier de configuration des sections précédentes.
Dans la branche
staging
du dépôt Git, modifiezworkflow.yaml
et remplacezHello World
parBye World
:Validez et déployez la modification dans la branche
staging
.git add workflow.yaml git commit -m "Update workflow.yaml in staging" git push
Le déclencheur Cloud Build s'exécute et lance une compilation.
Pour vérifier que la compilation a réussi, accédez à la page Historique de compilation de la console Google Cloud:
Accéder à l'historique de compilation
Une fois la compilation terminée, Cloud Build fournit un état général de la compilation et de chaque étape de compilation. Pour en savoir plus, consultez Afficher les résultats de la compilation.
Pour vérifier qu'un workflow de préproduction est déployé, accédez à la page Workflows de la console Google Cloud:
Un workflow nommé
workflows-gitops-staging
doit s'afficher.Pour déployer le workflow de préproduction en production, fusionnez la branche
staging
avec la branchemain
:git checkout main git merge staging git push
Comme
test-main.sh
attendHello World
dans la sortie du workflow, la compilation échouera:Pour déployer un workflow de production, dans la branche
staging
, modifiez à nouveauworkflow.yaml
et redéfinissez la chaîne surHello World
.Validez et déployez la modification dans la branche
staging
, puis fusionnez la branchestaging
avec la branchemain
.Pour vérifier qu'un workflow de production est déployé, accédez à la page Workflows de la console Google Cloud:
Un workflow nommé
workflows-gitops-main
doit s'afficher.
Étapes suivantes
- Découvrez Cloud Build.
- Découvrez comment résoudre les erreurs de compilation.
- Découvrez comment résoudre les problèmes liés aux workflows.