Cette page a été traduite par l'API Cloud Translation.
Switch to English

Intégrer à Cloud Build

Cette page explique comment configurer Cloud Build pour stocker des artefacts créés dans un dépôt Artifact Registry.

Avant de commencer

  1. Si le dépôt cible n'existe pas, créez un dépôt.
  2. Le compte de service Cloud Build par défaut est autorisé à importer et à télécharger des données dans des dépôts faisant partie du même projet. Si Cloud Build se trouve dans un projet différent de celui où se trouvent vos dépôts, vous devez accorder des autorisations au compte de service Cloud Build du projet contenant les dépôts.

Configurer une compilation Docker

Une fois que vous avez accordé les autorisations au dépôt cible, vous êtes prêt à configurer Docker pour l'authentification et le transfert d'un package dans le dépôt. Il est recommandé d'intégrer le compte de service Cloud Build.

Pour configurer Docker, procédez comme suit :

  1. Configurez l'authentification pour Docker.

  2. Dans votre fichier de configuration, ajoutez l'étape permettant de compiler et de transférer les images.

    L'exemple suivant utilise les valeurs suivantes pour une image se trouvant dans le même répertoire que le fichier de configuration de compilation :

    • Emplacement du dépôt us-central1
    • ID de projet de la compilation, résolu avec la substitution par défaut $PROJECT_ID
    • Nom du dépôt : my-repo
    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE}', '.' ]
    images:
    - 'us-central1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE}'
    

    Les variables${_REPOSITORY} et ${_IMAGE} sont utilisés pour le nom du dépôt et pour le nom de l'image dans le dépôt afin qu'ils puissent être remplacés au moment de la compilation à l'aide des substitutions personnalisées de Cloud Build.

    Cette approche est utile si vous souhaitez utiliser le même fichier de configuration de compilation pour transférer des images vers des dépôts pour différents environnements, tels que des environnement de test, de préproduction ou de production.

    Par exemple, cette commande remplace my-repo par le nom du dépôt et my-image par le nom de l'image.

    gcloud builds submit --config=cloudbuild.yaml \
      --substitutions=_REPOSITORY="my-repo",_IMAGE="my-image" .
    

Configurer un build Maven

Une fois que vous avez accordé des autorisations au dépôt cible, vous pouvez configurer Maven pour l'authentification et le transfert d'un package vers le dépôt. Il est recommandé d'intégrer le compte de service Cloud Build.

Pour configurer Maven, procédez comme suit :

  1. Configurez l'authentification pour Maven. Assurez-vous de spécifier le projet cible et le dépôt appropriés dans votre fichier pom.xml.

  2. Dans votre fichier de configuration de compilation Cloud Build, ajoutez l'étape permettant d'importer le package avec Maven :

    steps:
    - name: gcr.io/cloud-builders/mvn
      args: ['deploy']
    

Configurer un build npm

Une fois que vous avez accordé des autorisations au dépôt cible, vous pouvez configurer npm pour vous authentifier et transférer un package vers le dépôt. Il est recommandé d'intégrer le compte de service Cloud Build.

Pour configurer npm, procédez comme suit :

  1. Configurez l'authentification pour npm. Assurez-vous de spécifier le projet cible et le dépôt appropriés dans votre fichier .npmrc.

  2. Ajoutez un script au fichier package.json de votre projet, qui actualise le jeton d'accès pour l'authentification avec le dépôt.

    "scripts": {
     "artifactregistry-login": "npx google-artifactregistry-auth"
    }
    
  3. Dans le fichier de configuration de compilation, ajoutez l'étape pour importer le package dans le dépôt.

    steps:
    - name: gcr.io/cloud-builders/npm
      args: ['run', 'artifactregistry-login', ${_NPMRC}]
    - name: gcr.io/cloud-builders/npm
      args: ['publish', ${_PACKAGE}]
    

    Dans cet extrait:

    • ${_PACKAGE} est l'emplacement du package, du dossier ou d'un fichier tarball gzip contenant le fichier package.json et d'autres fichiers.
    • ${_NPMRC} est le chemin d'accès au fichier .npmrc.

    Spécifiez les valeurs de ces variables avec les substitutions Cloud Build au moment de la compilation.

    Par exemple, cette commande importe un package dans un répertoire nommé src avec une configuration dans /home/username/.npmrc:

    gcloud builds submit --config=cloudbuild.yaml \
        --substitutions=_PACKAGE="src",_NPMRC="/home/username/.npmrc" .