Gérer les dépendances de compilation

Cette page explique comment spécifier des dépendances de compilation. Cloud Build vous permet de gérer les dépendances de code source séparément du processus de compilation.

Dans votre fichier de configuration de compilation, vous pouvez répertorier un ou plusieurs dépôts à cloner pour votre compilation, ainsi que l'ordre dans lequel les récupérer. En spécifiant les dépendances de cette manière, vous séparez la récupération des dépendances du processus de compilation lui-même.

Si vous n'incluez aucune dépendance dans votre fichier de configuration de compilation, Cloud Build clone le dépôt de code source qui contient votre fichier de configuration de compilation (pour les compilations déclenchées) ou le dépôt qui contient votre code source (pour les compilations que vous appelez à partir de la ligne de commande). Si vous incluez des dépendances dans votre fichier de configuration de compilation, Cloud Build clone uniquement les dépôts spécifiés dans le champ dependencies.

Les dépendances sont clonées dans l'ordre dans lequel vous les spécifiez. De plus, la récupération des dépendances a lieu avant l'exécution de toute logique spécifiée par l'utilisateur. La récupération des dépendances est donc fiable.

Les dépendances s'affichent dans l'onglet Build dependencies (Dépendances de compilation) de la page Build details (Informations sur la compilation).

Avant de commencer

Les instructions figurant sur cette page supposent que vous disposez d'au moins l'un des deux types de dépôts suivants :

Pour vous assurer que dispose des autorisations nécessaires pour ajouter un dépôt Developer Connect en tant que dépendance, demandez à votre administrateur d'attribuer le rôle IAM Accesseur de jeton de lecture Developer Connect (developerconnect.readTokenAccessor) à sur votre compte de service. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Votre administrateur peut également attribuer les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Spécifier des dépendances

Pour spécifier des dépendances, ajoutez un champ dependencies à votre fichier de configuration de compilation. dependencies est une propriété de premier niveau dans la configuration de compilation, mais vous pouvez la placer n'importe où dans le fichier.

Spécifier des dépendances GitHub

Pour spécifier une dépendance sur un dépôt GitHub, ajoutez la configuration dependencies suivante à votre fichier de configuration de compilation :

YAML

 dependencies:
 - gitSource:
     repository:
       url: 'URL'
       developerConnect: 'DC_RESOURCE_PATH'
     revision: 'REVISION'
     recurseSubmodules: 'true|false'
     depth: 'DEPTH'
     destPath: 'DEST_PATH'

JSON

 {
     "dependencies": {
         "gitSource": {
             "repository": {
                 "url": "URL"
                 "developerConnect": "DC_RESOURCE_PATH"
             },
             "revision": "REVISION",
             "recurseSubmodules": true|false,
             "depth": "DEPTH",
             "destPath": "DEST_PATH",
         },
     },
 }

Remplacez les valeurs suivantes :

  • URL : URL HTTPS du dépôt à récupérer. Obligatoire, sauf si votre dépôt est connecté à Cloud Build à l'aide de Developer Connect.

  • DC_RESOURCE_PATH : chemin d'accès à la ressource d'un dépôt Developer Connect. Google Cloud Exemple : projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. Obligatoire si votre dépôt est connecté à Cloud Build à l'aide de Developer Connect.

    Si votre dépôt est connecté à l'aide de Developer Connect, vous avez besoin des éléments suivants :

  • REVISION : obligatoire. Version, hachage de commit, tag ou nom de branche à récupérer à partir du dépôt.

  • recurseSubmodules : "true|false" : indique s'il faut récupérer les sous-modules.

  • DEPTH : facultatif, profondeur de l'historique du dépôt à récupérer. Si aucune valeur n'est spécifiée, le dernier commit est récupéré.

    • 1 : dernier commit
    • 2 : deux derniers commits
    • 3 : trois derniers commits
    • -1 : tous les commits
  • DEST_PATH : obligatoire. Chemin d'accès au répertoire dans lequel le dépôt est cloné. Exemple : my/repo.

    Lorsque vous définissez dest_path, le dépôt est récupéré dans /workspace/<dest_path>. La valeur dest_path doit être un chemin d'accès relatif au répertoire de travail de la compilation.

Spécifier un artefact générique en tant que dépendance

Pour spécifier un artefact générique en tant que dépendance, ajoutez la configuration dependencies suivante à votre fichier de configuration de compilation :

YAML

dependencies:
- genericArtifact:
    resource: RESOURCE
    destPath: PATH

JSON

{
  "dependencies": [
    {
      "genericArtifact": {
        "resource": "RESOURCE",
        "destPath": "PATH"
      }
    }
  ]
}

Où :

  • RESOURCE est l'adresse complète de l'artefact générique dans votre dépôt générique Artifact Registry, au format suivant :

    projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSION

    Nous vous recommandons vivement d'inclure l'empreinte de votre artefact dans l'adresse de la ressource afin que Cloud Build puisse vérifier que la référence de l'artefact est immuable. Une version de package avec une empreinte ajoutée est au format suivant :

    VERSION@dirsum_sha256=HASH_VALUE

    Pour trouver l'empreinte d'un artefact dans un dépôt Artifact Registry, consultez Récupérer l'empreinte d'une version de package dans votre dépôt.

  • PATH est l'adresse du dossier dans lequel Cloud Build télécharge le package à partir de votre dépôt. Si le dossier n'existe pas encore, Cloud Build le crée automatiquement.

Étape suivante