En esta página se describe cómo crear un archivo de configuración de compilación que puedes usar para iniciar una compilación en Cloud Build.
Un archivo de configuración de compilación define los campos que necesita Cloud Build para realizar tus tareas. Necesitarás un archivo de configuración de compilación si vas a iniciar compilaciones con la herramienta de línea de comandos gcloud
o con activadores de compilación. Puedes escribir el archivo de configuración de la compilación con la sintaxis YAML o JSON.
Antes de empezar
Consulta la información general sobre la configuración de compilación para saber qué campos puedes incluir en un archivo de configuración de compilación.
Crear una configuración de compilación
En los siguientes pasos se explica cómo crear un archivo básico de configuración de versiones. Cada uno de los campos del archivo de configuración de compilación define una parte de la tarea que quieres realizar. El único campo obligatorio del archivo de configuración de compilación es el campo name
de un paso. Los demás campos son opcionales.
YAML
Crea el archivo de configuración de compilación. En el directorio raíz de tu proyecto, crea un archivo llamado
cloudbuild.yaml
. Este es tu archivo de configuración de Cloud Build.Añade el campo de pasos. La sección
steps
del archivo de configuración de compilación contiene los pasos de compilación que quieres que realice Cloud Build.steps:
Añade el primer paso. En
steps:
, añade un camponame
y dirígelo a una imagen de contenedor para ejecutar la tarea. Cloud Build y su comunidad de desarrolladores proporcionan varias imágenes de contenedor con herramientas y lenguajes comunes instalados. Puedes usar cualquiera de estas imágenes (también llamadas Cloud Builders) o cualquier imagen disponible públicamente en un paso de compilación. Para obtener información sobre los distintos tipos de imágenes de contenedor que puedes usar en un paso de compilación, consulta Compiladores de Cloud.El siguiente fragmento muestra una fase de compilación con un compilador
docker
gcr.io/cloud-builders/docker
, que es una imagen de contenedor que ejecuta Docker.steps: - name: 'gcr.io/cloud-builders/docker'
Añade argumentos de paso. El campo
args
de un paso toma una lista de argumentos y los pasa al compilador al que hace referencia el camponame
. Si el compilador del camponame
tiene un punto de entrada, se usaargs
en la lista para acceder a ese punto de entrada. Si el compilador del camponame
no tiene ningún punto de entrada, se usa el primer elemento deargs
como punto de entrada.En el siguiente ejemplo:
build
es el punto de entrada del compilador de Docker en la nube.-t
es la etiqueta de Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
es el nombre de la imagen que se va a compilar en Artifact Registry. El paso de compilación usa la sustitución predeterminada del ID de proyecto, por lo que este valor se sustituye automáticamente en el momento de la compilación..
es la ubicación del código fuente, lo que indica que el código fuente está en el directorio de trabajo actual.steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
Añadir más pasos Puedes añadir cualquier número de pasos de compilación al archivo de configuración de la compilación incluyendo campos
name
adicionales y dirigiéndolos a cloud builders.El siguiente fragmento incluye dos pasos más en el archivo de configuración de compilación:
- Un paso de compilación de Docker para invocar el comando
docker push
y enviar la imagen compilada en el paso anterior a Artifact Registry. un paso de compilación para el comando del SDK Google Cloud con el punto de entrada
gcloud
especificado, que crea una instancia de Compute Engine a partir de la imagen de contenedor de Artifact Registry. El campoenv
se incluye para especificar la zona y la región de Compute Engine.- name: 'gcr.io/cloud-builders/docker' args: ['push', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- Un paso de compilación de Docker para invocar el comando
Incluye campos de configuración de compilación adicionales. Puede configurar aún más la compilación incluyendo campos como
machineType
,tags
otimeout
. Para ver la lista completa de campos que puedes incluir en el archivo de configuración de compilación, consulta el artículo Descripción general de la configuración de compilación.En el siguiente ejemplo, el paso de compilación
gcr.io/google.com/cloudsdktool/cloud-sdk
se agota tras 240 segundos.- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' timeout: 240s args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
Consulta el siguiente fragmento para ver un ejemplo completo de un archivo básico de configuración de versiones:
En el ejemplo, las imágenes de contenedor se almacenan en Artifact Registry. Si tu compilación genera artefactos que no son contenedores, puedes almacenarlos en Cloud Storage mediante el campo
artifacts
. Para obtener instrucciones sobre cómo hacerlo, consulta Almacenar imágenes y artefactos.
JSON
Crea el archivo de configuración de compilación. En el directorio raíz de tu proyecto, crea un archivo llamado
cloudbuild.json
. Este es tu archivo de configuración de Cloud Build.Añade el campo de pasos. La sección
steps
del archivo de configuración de compilación contiene los pasos de compilación que quieres que realice Cloud Build.{ "steps": }
Añade el primer paso. En
steps:
, añade un camponame
y dirígelo a una imagen de contenedor para ejecutar la tarea. Cloud Build y su comunidad de desarrolladores proporcionan varias imágenes de contenedor con herramientas y lenguajes comunes instalados. Puedes usar cualquiera de estas imágenes (también llamadas Cloud Builders) o cualquier imagen disponible públicamente en un paso de compilación. Para obtener información sobre los distintos tipos de imágenes de contenedor que puedes usar en un paso de compilación, consulta Compiladores de Cloud.El siguiente fragmento muestra una fase de compilación con un compilador
docker
gcr.io/cloud-builders/docker
, que es una imagen de contenedor que ejecuta Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }
Añade argumentos de paso. El campo
args
de un paso toma una lista de argumentos y los pasa al compilador al que hace referencia el camponame
. Si el compilador del camponame
tiene un punto de entrada, se usaargs
en la lista para acceder a ese punto de entrada. Si el compilador del camponame
no tiene ningún punto de entrada, se usa el primer elemento deargs
como punto de entrada.En el siguiente ejemplo:
build
es el punto de entrada del compilador de Docker en la nube.-t
es la etiqueta de Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
es el nombre de la imagen que se va a compilar en Artifact Registry. El paso de compilación usa la sustitución predeterminada del ID de proyecto, por lo que este valor se sustituye automáticamente en el momento de la compilación..
es la ubicación del código fuente, lo que indica que el código fuente está en el directorio de trabajo actual.{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
Añadir más pasos Puedes añadir cualquier número de pasos de compilación al archivo de configuración de la compilación incluyendo campos
name
adicionales y dirigiéndolos a cloud builders.El siguiente fragmento incluye dos pasos más en el archivo de configuración de compilación:
- Un paso de compilación de Docker para invocar el comando
docker push
y enviar la imagen compilada en el paso anterior a Artifact Registry. un paso de compilación para el comando del SDK Google Cloud con el punto de entrada
gcloud
especificado, que crea una instancia de Compute Engine a partir de la imagen de contenedor de Artifact Registry. El campoenv
se incluye para especificar la zona y la región de Compute Engine.{ "name": "gcr.io/cloud-builders/docker", "args": [ "push", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ] }, { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
- Un paso de compilación de Docker para invocar el comando
Incluye campos de configuración de compilación adicionales. Puede configurar aún más la compilación incluyendo campos como
machineType
,tags
otimeout
. Para ver la lista completa de campos que puedes incluir en el archivo de configuración de compilación, consulta el artículo Descripción general de la configuración de compilación.En el siguiente ejemplo, el paso de compilación
gcr.io/google.com/cloudsdktool/cloud-sdk
se agota tras 240 segundos.{ "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "timeout": "240s", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
Consulta el siguiente fragmento para ver un ejemplo completo de un archivo básico de configuración de versiones:
En el ejemplo, las imágenes de contenedor se almacenan en Artifact Registry. Si tu compilación genera artefactos que no son contenedores, puedes almacenarlos en Cloud Storage mediante el campo
artifacts
. Para obtener instrucciones sobre cómo hacerlo, consulta Almacenar imágenes y artefactos.
Siguientes pasos
- Consulta cómo ejecutar tus compilaciones manualmente y con activadores mediante el archivo de configuración de compilación.
- Consulta cómo escribir configuraciones de compilación para incluir dependencias y compilar, probar e implementar artefactos.