Type de compilation: Google Builder

Cette page explique la définition du type de compilation SLSA v1.0 pour Google Builder.

Paramètres externes

Le tableau suivant présente les types de paramètres externes pouvant être utilisés dans une définition de Workflow PipelineRun et de Workflow TaskRun. Sauf indication contraire, tous les paramètres sont obligatoires.

Champ Type Détails

runSpec

objet

Spécification PipelineRun complète.

buildConfigSource

objet

Spécification buildConfigSource complète.

Spécification PipelineRun

Champ Type Détails

pipelineRef/taskRef

objet

Emplacement à partir duquel pipelineSpec/taskSpec a été lu.

Ce champ n'est renseigné que si la pipelineSpec a été référencée à partir d'une source distante.

Valeur par défaut : null

pipelineSpec/taskSpec

objet

Spécification de pipeline/tâche intégrée, non extraite d'une source distante à l'aide de pipelineRef/taskRef.

[Facultatif]

params

[object]

Mappage des noms et valeurs des paramètres fournis au pipeline. Les valeurs peuvent être de type chaîne, tableau ou objet.

Valeur par défaut : null

Remarque: En cas de workflow déclenché, ce champ contient également des paramètres fournis par le système de déclenchement de Cloud Build, en plus des paramètres configurés par l'utilisateur dans la définition du workflow.

espaces de travail

[object]

Les espaces de travail contiennent un ensemble de liaisons d'espaces de travail qui doivent correspondre aux noms déclarés dans le pipeline.

Valeur par défaut : null

timeouts/timeout

objet

Délai avant expiration du pipeline. Vous pouvez définir des délais avant expiration pour le pipeline, les tâches et les tâches "finally". Ils sont liés par la formule Timeouts.pipeline Timeouts.tasks + Timeouts.finally.

Spécification buildConfigSource

Champ Type Détails

ref

objet

Les possibilités suivantes s'offrent à vous :

  • Référence Git. Par exemple, l'ID de commit: sha1:563f0...
  • Condensé de l'image. Par exemple : sha256:91fbe...

dépôt

chaîne

URI du dépôt Git ou de l'image

chemin d'accès

chaîne

Chemin d'accès dans le dépôt Git ou nom de la ressource dans le bundle d'images.

Paramètres internes

Les paramètres internes sont fournis par le compilateur pour le processus de compilation.

Champ Type Détails
tekton-pipelines-feature-flags objet Options de fonctionnalité de configuration Tekton utilisées pour le build. Ils sont configurés par le compilateur et sont utiles pour la reproductibilité.
systemParameters objet Liste de paires nom/valeur pour les substitutions système par défaut fournies par GCB.

Dépendances résolues

Le champ resolvedDependencies doit contenir des entrées identifiant la référence résolue correspondant à externalParameters.configRef. Il s'agit de la référence au pipeline, en cas de spécification PipelineRun, ou de la référence à la tâche, en cas de spécification TaskRun.

Les dépendances résolues peuvent contenir des artefacts supplémentaires qui sont des entrées pour la compilation, en utilisant le champ name pour indiquer le type de l'artefact:

  • Pour les pipelines distants, utilisez name: pipeline.
  • Pour les tâches distantes, utilisez name: pipelineTask.
  • Pour une référence résolue à une étape ou à une image de conteneur side-car, le champ name est facultatif. Dans le cas du champ digest, même si l'image est référencée par un tag, le condensé de l'image doit être inclus.
  • Pour les autres artefacts d'entrée utilisés pour la compilation, comme le code source, utilisez name: inputs/result. Les indices de type sont utilisés pour les résultats de la tâche.

L'exemple suivant contient des informations sur tous les types de dépendances résolues:

"resolvedDependencies": [
  {
    "name": "pipeline",
    "uri": "git+https://github.com/octocat/hello-world.git",
    "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"},
  },
  {
  "name": "pipelineTask",
  "uri": "git+https://github.com/octocat/hello-world.git",
  "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"},
  },
  {
  "uri": "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init",
  "digest": {
    "sha256": "28ff94e63e4058afc3f15b4c11c08cf3b54fa91faa646a4bbac90380cd7158df"},
  },
  {
  "name": "inputs/result",
  "uri": "git+https://github.com/octocat/hello-world.git",
  "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"},
  }
]

RunDetails

Champ Détails
compilateur Contient un sous-champ id qui identifie la plate-forme de compilation qui a exécuté l'opération et renseigné cette provenance. Il contient également le niveau SLSA. La valeur id attendue est l'une des suivantes :
  • https://cloudbuild.googleapis.com/GoogleBuilder. Cet ID de compilateur indique un build SLSA L2.
  • https://cloudbuild.googleapis.com/GoogleIsolatedBuilder. Cet ID de compilateur indique un build SLSA L3.
métadonnées Métadonnées supplémentaires sur cette exécution particulière du build. invocationId affiche l'URL du build, par exemple https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/pipelineRuns/BUILD_ID.
 Les champs startedOn et finishedOn contiennent les codes temporels de début et de fin de la compilation.
sous-produits Un objet results.
Contient les résultats de la tâche générés par l'exécution du pipeline. Le contenu est encodé en base64.