Cloud Build vous permet de créer des déclencheurs pour compiler à partir de dépôts hébergés sur GitHub. Vous pouvez exécuter des compilations en réponse à des événements tels que des requêtes push ou des demandes de fusion associées à votre dépôt GitHub.
Cette page explique comment activer les déclencheurs de compilation pour une instance GitHub. Pour en savoir plus, consultez les pages Déclencheurs Cloud Build et Dépôts Cloud Build.
Avant de commencer
Suivez les instructions pour vous connecter à un hôte GitHub.-
Enable the Cloud Build API.
Pour créer un déclencheur pour un dépôt GitHub, vous devez disposer d'une connexion entre Google Cloud et votre dépôt. Pour créer une connexion via l'application GitHub dans Google Cloud, consultez Se connecter à un dépôt GitHub.
Créer un déclencheur GitHub
Cette section explique comment créer un déclencheur et l'associer à votre installation GitHub.
Console Google Cloud
Pour créer des déclencheurs GitHub à l'aide de la console Google Cloud , procédez comme suit:
Ouvrez la page Déclencheurs dans la console Google Cloud .
Sélectionnez votre projet Google Cloud , puis cliquez sur Ouvrir.
Cliquez sur Créer un déclencheur.
Entrez les paramètres de déclencheur suivants :
Nom : saisissez le nom de votre déclencheur.
Région: sélectionnez la région pour votre déclencheur.
- Si le fichier de configuration de compilation associé au déclencheur spécifie un pool privé, Cloud Build utilise le pool privé pour exécuter votre compilation. Dans ce cas, la région que vous spécifiez dans votre déclencheur doit correspondre à celle dans laquelle vous avez créé votre pool privé.
- Si le fichier de configuration de compilation associé au déclencheur ne spécifie pas de pool privé, Cloud Build utilise le pool par défaut pour exécuter votre compilation dans la même région que votre déclencheur.
Description (facultative) : saisissez une description du déclencheur.
Événement : sélectionnez l'événement lié au dépôt qui appelle votre déclencheur.
Déployer sur une branche : configurez votre déclencheur pour lancer une compilation sur les commits réalisés dans une branche spécifique.
Transférer le nouveau tag : configurez votre déclencheur pour lancer une compilation sur des commits contenant un tag particulier.
Demande d'extraction: configurez votre déclencheur pour lancer une compilation sur les commits d'une demande d'extraction d'extraction.
Source: configurez les informations sur votre dépôt GitHub:
Service de dépôt: sélectionnez Cloud Build.
Génération de dépôt: sélectionnez Developer Connect comme source.
Dépôt: sélectionnez le dépôt dans la liste des dépôts disponibles.
Branche ou tag : spécifiez une expression régulière à laquelle faire correspondre la valeur de la branche ou du tag. Pour en savoir plus sur la syntaxe des expressions régulières acceptables, consultez la page Syntaxe RE2.
Contrôle des commentaires: si vous avez sélectionné Demande d'extraction comme événement, choisissez l'une des options suivantes pour contrôler si une compilation doit être exécutée automatiquement par le déclencheur:
Obligatoire, sauf pour les propriétaires et les collaborateurs: lorsqu'une demande d'extraction est créée ou mise à jour par un propriétaire ou un collaborateur du dépôt, les compilations sont automatiquement exécutées par le déclencheur. Si un contributeur externe lance l'action, les compilations ne sont exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction d'extraction.Obligatoire: lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations ne sont exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction d'extraction. Les compilations sont exécutées chaque fois qu'une modification est apportée à une demande d'extraction;extraction.Non requis: lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations sont automatiquement exécutées par des déclencheurs.
Configuration: sélectionnez le fichier de configuration de compilation situé dans votre dépôt distant ou créez un fichier de configuration de compilation intégré à utiliser pour votre compilation.
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
- Détection automatique: Cloud Build détecte automatiquement votre type de configuration si vous disposez d'un
cloudbuild.yaml
ou d'unDockerfile
dans votre dépôt. - Fichier de configuration Cloud Build (yaml or json) : utilisez un fichier de configuration de compilation pour votre configuration.
- Dockerfile: utilisez un fichier
Dockerfile
pour votre configuration. - Buildpacks: utilisez des packs de création pour votre configuration.
- Détection automatique: Cloud Build détecte automatiquement votre type de configuration si vous disposez d'un
Emplacement: spécifiez l'emplacement de votre configuration.
- Dépôt: si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation ou le répertoire
Dockerfile
et un nom pour l'image obtenue. Si votre configuration est unDockerfile
, vous pouvez éventuellement fournir un délai d'expiration pour votre compilation. Une fois le fichierDockerfile
et le nom de l'image fournis, vous obtenez un aperçu de la commandedocker build
que votre compilation va exécuter. - Intégré: si vous avez sélectionné Fichier de configuration Cloud Build (yaml ou json) comme option de configuration, vous pouvez spécifier votre configuration de compilation de manière intégrée. Cliquez sur Ouvrir l'éditeur pour écrire votre fichier de configuration de compilation dans la consoleGoogle Cloud à l'aide d'une syntaxe YAML ou JSON. Cliquez sur OK pour enregistrer la configuration de compilation.
- Dépôt: si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation ou le répertoire
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
Variables de substitution (facultatives) : si vous avez choisi un fichier de configuration Cloud Build pour configurer la compilation, ce champ vous permet de définir des variables de substitution spécifiques à ce déclencheur. Par exemple, supposons que vous créez plusieurs déclencheurs, chacun visant à déployer votre application dans un environnement spécifique. Vous pouvez indiquer dans votre fichier de configuration que votre application est déployée dans un environnement, puis utiliser ce champ pour définir des variables de substitution spécifiant vers quel environnement ce déclencheur doit effectuer le déploiement. Pour en savoir plus sur la manière de spécifier des valeurs de substitution dans les fichiers de configuration de compilation, consultez la page Remplacer les valeurs des variables.
Journaux de compilation (facultatif): cochez cette case pour envoyer les journaux de compilation à GitHub. Pour savoir comment afficher les journaux de compilation, consultez Afficher les journaux de compilation.
Compte de service: sélectionnez le compte de service à utiliser lors de l'appel de votre déclencheur. Si les règles de votre organisation autorisent l'utilisation de l'ancien compte de service Cloud Build, vous pouvez laisser ce champ vide pour utiliser l'ancien compte de service. Sinon, vous devez sélectionner le compte de service spécifique à utiliser, même s'il s'agit du compte de service Compute Engine par défaut.
Cliquez sur Créer pour enregistrer le déclencheur de compilation.
Pour créer des déclencheurs GitHub à l'aide des commandes gcloud
, consultez les commandes gcloud
de la page Créer un déclencheur de compilation.
CLI gcloud
Pour créer des déclencheurs GitHub à l'aide des commandes gcloud
, exécutez la commande suivante :
gcloud alpha builds triggers create developer connect
--name=TRIGGER_NAME \
--git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION \
--service-account=SERVICE-ACCOUNT
Où :
- TRIGGER_NAME correspond au nom de votre déclencheur.
- PROJECT_ID est l'ID de votre Google Cloud projet.
- REGION correspond à la région de votre déclencheur.
- CONNECTION_NAME est le nom de votre connexion GitHub.
- GIT_REPOSITORY_LINK est le lien vers votre dépôt Git.
- BRANCH_PATTERN est le nom de la branche de votre dépôt sur lequel appeler la compilation.
- TAG_PATTERN est le nom du tag de votre dépôt sur lequel appeler la compilation.
- BUILD_CONFIG_FILE correspond au chemin d'accès à votre fichier de configuration de compilation.
- SERVICE-ACCOUNT est le compte de service à utiliser pour les opérations de déclenchement et de compilation.
API
Pour créer un déclencheur GitHub avec l'API, utilisez le modèle JSON suivant:
{
"filename": "cloudbuild.yaml",
"name": "TRIGGER_NAME",
"description": "TRIGGER_DESCRIPTION",
"serviceAccount": "SERVICE_ACCOUNT",
"github": {
"owner": "OWNER",
"name": "REPO_NAME",
"push": {
"branch": ".*"
},
},
"include_build_logs": include-build-logs-value
}
Où :
- TRIGGER_NAME correspond au nom du déclencheur.
- TRIGGER_DESCRIPTION est une description du déclencheur.
- SERVICE_ACCOUNT est le compte de service à utiliser pour les opérations de déclenchement et de compilation.
- OWNER est le propriétaire du dépôt GitHub.
- REPO_NAME est le nom du dépôt GitHub.
- include-build-logs-value correspond à la valeur du champ
include_build_logs
facultatif. Si la valeur de ce champ estINCLUDE_BUILD_LOGS_SPECIFIED
, les journaux de compilation s'affichent dans votre dépôt.
Saisissez la commande curl
suivante dans votre terminal:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json
Où :
- PROJECT_NUMBER est le numéro de votre Google Cloud projet.
- PROJECT_ID est l'ID de votre Google Cloud projet.
Compiler et afficher vos modifications
Pour compiler à l'aide de déclencheurs GitHub, vous devez envoyer et valider des modifications dans votre dépôt source connecté, ou configurer votre compilation sur des demandes d'extraction. Une fois vos modifications validées, Cloud Build compile votre code.
Pour afficher vos modifications de compilation sur GitHub, accédez à l'onglet Vérifications de votre dépôt.
Cloud Build a compilé vos modifications. D'autres informations s'affichent également, telles que le temps nécessaire à la compilation du code, l'ID de la compilation, etc.
Pour afficher les modifications de votre compilation dans Cloud Build, cliquez sur Afficher plus de détails sur Google Cloud Build. La page Informations sur la compilation de la console Google Cloud s'ouvre. Vous pouvez y voir des informations sur la compilation, comme l'état, les journaux et les étapes.
Partage des données
Les données envoyées à GitHub depuis Cloud Build vous permettent d'identifier les déclencheurs par nom et d'afficher les résultats de compilation sur GitHub.
Les données suivantes sont actuellement partagées entre Cloud Build et GitHub:
- ID du projet Cloud
- Nom du déclencheur
- Journaux de compilation
Si vous avez créé des déclencheurs avant le mois d'août 2020, le partage des données peut ne pas être activé pour votre projet. Vous pouvez activer le partage des données pour tous les déclencheurs GitHub de votre projet en cliquant sur Activer dans l'onglet de partage des données Cloud Build.
Si les vérifications d'état requises sont activées pour un dépôt GitHub, l'activation du partage des données peut interrompre temporairement les vérifications d'état. Vous pouvez ajuster les configurations de la vérification d'état pour rechercher le nom de votre déclencheur en procédant comme suit:
- Désactiver les vérifications requises spécifiques à Cloud Build dans le dépôt GitHub
- S'assurer que le partage des données est activé dans Cloud Build
- Exécuter une nouvelle compilation dans Cloud Build qui publie des états dans votre dépôt
- Réactivation des vérifications d'état requises en sélectionnant le nom du déclencheur
Étape suivante
- Découvrez comment créer et gérer des déclencheurs de compilation.
- Découvrez comment effectuer des déploiements bleu-vert sur Compute Engine.