Automatiser les compilations avec Cloud Build

Cet article explique comment automatiser les compilations à l'aide de Cloud Build et Cloud Source Repositories.

Vous pouvez configurer Cloud Build pour compiler automatiquement une nouvelle image chaque fois qu'un utilisateur effectue une modification dans les fichiers stockés dans Cloud Source Repositories. Les événements qui lancent des compilations automatiques sont appelés des déclencheurs de compilation. Ces déclencheurs veillent à ce que les images de conteneur soient toujours à jour. Vous pouvez également les utiliser pour compiler et tester des branches de fonctionnalités.

Avant de commencer

Informations supplémentaires

En plus des prérequis, les informations suivantes peuvent vous être utiles :

  • Les déclencheurs de compilation utilisent les clones superficiels du dépôt. Avec les clones superficiels, seul le commit unique ayant déclenché une compilation automatique est extrait dans l'espace de travail. Pour plus d'informations et découvrir comment inclure plus d'historique de dépôt, consultez la section Remplir des clones.

  • Si vous utilisez un autre fournisseur Git hébergé, tel que GitHub ou Bitbucket, et que vous n'avez pas encore mis en miroir le dépôt dans Cloud Source Repositories, vous devez disposer de l'autorisation cloudbuilds.builds.create pour le projet Google Cloud avec lequel vous travaillez. Cette autorisation est généralement accordée via le rôle cloudbuild.builds.editor.

    Lorsque vous configurez un déclencheur de compilation avec un dépôt externe pour la première fois, vous devez configurer une autorisation avec ce dépôt. Pour plus d'informations, consultez la section Ajouter un dépôt en tant que dépôt distant.

    Une fois que vous avez configuré votre dépôt externe, Cloud Source Repositories crée un miroir de votre dépôt.

  • Pour plus d'informations sur les quotas et les limites de Cloud Build, consultez la section Quotas et limites de la documentation Cloud Build.

Créer un déclencheur de compilation

Pour créer un déclencheur de compilation, procédez comme suit :

  1. Dans Google Cloud Console, ouvrez la page Déclencheurs de compilation de Cloud Build.

    Ouvrir la page Déclencheurs de compilation

  2. Sélectionnez votre projet Google Cloud, puis cliquez sur Ouvrir.

    La page Déclencheurs s'affiche.

  3. Cliquez sur Créer un déclencheur.

    La page Créer un déclencheur s'affiche.

  4. Dans la liste déroulante Dépôt, sélectionnez un dépôt.

  5. Indiquez les options suivantes :

    • Facultatif. Dans le champ Description, saisissez le nom du déclencheur.
    • Facultatif. Dans le champ Type de déclencheur, vous pouvez définir un déclencheur pour démarrer une compilation sur des commits effectués vers une branche particulière ou sur des commits contenant un certain tag. Dans les deux cas, vous pouvez spécifier une expression régulière avec la valeur de branche ou de tag correspondante.

    • Dans la liste Configuration de la compilation, sélectionnez un type de fichier de configuration à utiliser pour chaque compilation que le déclencheur démarre. Vous pouvez sélectionner et spécifier un Dockerfile, ou vous pouvez sélectionner un fichier de configuration Cloud Source Repositories (situé dans le dépôt distant). Si nécessaire, consultez les informations de cette page concernant la compilation avec un fichier Dockerfile ou un fichier de configuration de compilation.

  6. Cliquez sur Créer un déclencheur.

Utiliser un fichier Dockerfile

Pour utiliser un fichier Dockerfile dans votre configuration de compilation, vous devez spécifier le répertoire Dockerfile et attribuer un nom à l'image obtenue.

Une fois le Dockerfile et le nom de l'image fournis, vous obtenez un aperçu de la commande docker build que votre compilation va exécuter et un résumé de la configuration du déclencheur.

Utiliser un fichier de configuration de compilation

Pour utiliser un fichier de configuration de compilation, vous devez indiquer son emplacement.

Une fois l'emplacement défini, vous devez voir un résumé du déclencheur.

Tester un déclencheur de compilation

Pour tester manuellement un déclencheur de compilation, cliquez sur Exécuter le déclencheur sur l'entrée du déclencheur de la liste.

Ignorer un déclencheur de compilation

Dans certains cas, vous souhaiterez peut-être modifier votre code source, mais pas déclencher de compilation lorsque vous mettez à jour une documentation ou des fichiers de configuration.

Dans de tels scénarios, vous pouvez inclure [skip ci] ou [ci skip] dans le message de commit pour que la compilation ne soit pas déclenchée.

Exemple :

Author: A User <auser@example.com>
Date:   Tue Apr 3 12:03:35 2018 -0700

Fixed customer affecting issue. [skip ci]

Si vous souhaitez exécuter ultérieurement une compilation sur ce commit, utilisez le bouton Exécuter le déclencheur.

Remplir des clones superficiels

Pour compiler la source dans un dépôt Git, Cloud Build exécute un clone superficiel du dépôt. Lorsque Cloud Source Repositories exécute un clone superficiel, il n'extrait de l'espace de travail que le commit ayant déclenché la compilation, puis le compile à partir de cette source. Cloud Source Repositories ne consulte aucune autre branche ou historique. Cette procédure est effectuée par souci d'efficacité. Ainsi, les compilations n'ont pas à attendre que Cloud Source Repositories récupère l'intégralité du dépôt et de l'historique pour compiler un seul commit.

Pour inclure plus d'historique de dépôt dans la compilation, ajoutez une étape de compilation à votre fichier de configuration de compilation afin de "remplir" le clone. Exemple :

steps:
- name: gcr.io/cloud-builders/git
  args: ['fetch', '--unshallow']
...

Pour en savoir plus sur git fetch, consultez la documentation de référence sur git. Pour obtenir des instructions sur l'écriture d'un fichier de configuration de compilation, consultez la section Présentation de la configuration de compilation.

Étapes suivantes