Tipo de compilación: Google Builder

En esta página, se explica la definición de tipo de compilación de SLSA v1.0 para Google Builder.

Parámetros externos

En la siguiente tabla, se muestran los tipos de parámetros externos que se pueden usar en una definición de Workflow PipelineRun y Workflow TaskRun. A menos que se indique lo contrario, todos los parámetros son obligatorios.

Campo Tipo Detalles

runSpec

objeto

La especificación de PipelineRun completa.

buildConfigSource

objeto

La especificación completa de buildConfigSource

Especificación de PipelineRun

Campo Tipo Detalles

pipelineRef/taskRef

objeto

De dónde se leyó pipelineSpec/taskSpec.

Este campo solo se propaga si se hizo referencia a pipelineSpec desde una fuente remota.

Valor predeterminado: null

pipelineSpec/taskSpec

objeto

Especificación de canalización o tarea intercalada, que no se recupera de una fuente remota con pipelineRef/taskRef.

[Opcional].

params

[object]

Es un mapa de los nombres y valores de los parámetros proporcionados a la canalización. Los valores pueden ser de tipo cadena, array o objeto.

Valor predeterminado: null

Nota: En el caso de un flujo de trabajo activado, este campo también contendrá algunos parámetros proporcionados por el sistema de activación de Cloud Build, además de los parámetros que configuró el usuario en la definición del flujo de trabajo.

lugares de trabajo

[object]

Los lugares de trabajo contienen un conjunto de vinculaciones de lugares de trabajo que deben coincidir con los nombres declarados en la canalización.

Valor predeterminado: null

tiempos de espera/tiempo de espera

objeto

Es el tiempo después del cual se agota el tiempo de espera de la canalización. Los tiempos de espera se pueden definir para Canalización, Tareas y Finalmente. Se relacionan con la fórmula Timeouts.pipeline Timeouts.tasks + Timeouts.finally.

Especificación de buildConfigSource

Campo Tipo Detalles

ref

objeto

Puede ser una de las siguientes:

  • La referencia de git. Por ejemplo, el sha de confirmación: sha1:563f0...
  • El resumen de la imagen. Por ejemplo: sha256:91fbe...

repositorio

string

El URI del repositorio de Git o el URI del repositorio de imágenes

path

string

Es la ruta de acceso en el repositorio de git o el nombre del recurso en el paquete de imagen.

Parámetros internos

El compilador proporciona los parámetros internos para el proceso de compilación.

Campo Tipo Detalles
tekton-pipelines-feature-flags objeto Marcas de función de configuración de Tekton que se usan para la compilación. El compilador los configura y son útiles para la reproducibilidad.
systemParameters objeto Es una lista de pares de nombre y valor para las sustituciones predeterminadas del sistema que proporciona GCB.

Dependencias resueltas

El campo resolvedDependencies debe contener entradas que identifiquen la referencia resuelta correspondiente a externalParameters.configRef. Esta es la referencia a la canalización, en el caso de una especificación de PipelineRun, o la referencia a la tarea, en el caso de una especificación de TaskRun.

Las dependencias resueltas pueden contener artefactos adicionales que son entradas para la compilación, que usan el campo name para indicar el tipo de artefacto:

  • Para canalizaciones remotas, usa name: pipeline.
  • Para Tasks remoto, usa name: pipelineTask.
  • Para una referencia resuelta a un paso o a una imagen de contenedor del sidecar, el campo name es opcional. En el caso del campo digest, incluso si se hace referencia a la imagen con una etiqueta, se debe incluir el resumen de la imagen.
  • Para otros artefactos de entrada que se usan para la compilación, como el código fuente, usa name: inputs/result. Las sugerencias de tipo se usan para los resultados de la tarea.

El siguiente ejemplo contiene información sobre todos los tipos de dependencias resolvidas:

"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

Campo Detalles
compilador Contiene un subcampo id que identifica la plataforma de compilación que ejecutó la operación y propagó esta procedencia. También contiene el nivel de SLSA. El valor esperado de id es uno de los siguientes:
  • https://cloudbuild.googleapis.com/GoogleBuilder. Este ID de compilador indica una compilación de SLSA L2.
  • https://cloudbuild.googleapis.com/GoogleIsolatedBuilder. Este ID de compilador indica una compilación de SLSA L3.
metadatos Son metadatos adicionales sobre esta ejecución en particular de la compilación. invocationId muestra la URL de la compilación, como https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/pipelineRuns/BUILD_ID.
Los campos startedOn y finishedOn contienen las marcas de tiempo de cuándo comenzó y se completó la compilación.
subproductos Un objeto results.
Contiene los TaskRunResults que produce PipelineRun. El contenido está codificado en Base64.