En esta página, se describe cómo crear un archivo de configuración de compilación, que puedes usar para empezar a compilar en Cloud Build.
Un archivo de configuración de compilación define los campos que Cloud Build necesita para realizar todas tus tareas. Necesitarás un archivo de configuración de compilación si comienzas a compilar mediante la herramienta de línea de comandos de gcloud
o los activadores de compilación. Puedes escribir el archivo de configuración de compilación con la sintaxis de YAML o JSON.
Antes de comenzar
Lee Descripción general de la configuración de compilación para aprenderás sobre los campos que puedes incluir en un archivo de configuración de compilación.
Crea una configuración de compilación
En los siguientes pasos, se explica cómo crear un archivo de configuración de compilación básico. Cada uno de
los campos del archivo de configuración de compilación definen una parte de la tarea que deseas
realizar. El único campo obligatorio del archivo de configuración de compilación es el campo name
de un paso. Todos 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 compilación de Cloud Build.Agrega el campo steps. En la sección
steps
del archivo de configuración de compilación, se encuentran los pasos de compilación que quieres que Cloud Build realice.steps:
Agrega el primer paso. En
steps:
, agrega un camponame
y dirígelo a una imagen de contenedor para ejecutar la tarea. Cloud Build y sus La comunidad de desarrolladores proporciona varias imágenes de contenedores con herramientas comunes e idiomas instalados. Puedes usar cualquiera de estas imágenes (también llamadas compiladores de cloud) o cualquier imagen disponible de forma pública en un paso de compilación. Para obtener más información sobre diferentes tipos de imágenes de contenedor que puedes usar en un paso de compilación, consulta compiladores de cloud.En el siguiente fragmento, se muestra un paso de compilación con un compilador de
docker
(gcr.io/cloud-builders/docker
) que es una imagen de contenedor que ejecuta Docker.steps: - name: 'gcr.io/cloud-builders/docker'
Agrega argumentos de paso. El campo
args
de un paso toma una lista de argumentos y los pasa al compilador al que se hace referencia en el camponame
. Si el compilador del camponame
tiene un punto de entrada,args
en la lista se usará para acceder a ese punto de entrada. Si el compilador del camponame
no tiene un Punto de entrada, el primer elemento deargs
se usa como punto de entrada.En el siguiente ejemplo:
build
es el punto de entrada al compilador en la nube de Docker.-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 compilará en Artifact Registry. En el paso de compilación, se usa la sustitución predeterminada para el ID del proyecto, por lo que este valor se sustituye automáticamente durante la compilación..
es la ubicación del código fuente, que indica que el código fuente se encuentra 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', '.']
Agrega más pasos. Puedes agregar cualquier cantidad de pasos de compilación al archivo de configuración de compilación si incluyes campos
name
adicionales y los diriges a compiladores en la nube.El siguiente fragmento agrega dos pasos más al archivo de configuración de compilación:
- Un paso de compilación de Docker para invocar el comando
docker push
, de modo que se envíe a Artifact Registry la imagen que se compiló en el paso anterior. Un paso de compilación para el comando del SDK de Google Cloud con el punto de entrada
gcloud
especificado, que crea una instancia de Compute Engine a partir de la imagen del contenedor en 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 adicionales de configuración de compilación. Puedes configurar el aún más compilando incluyendo campos como
machineType
,tags
otimeout
. Para ver la lista completa de campos, puedes incluir En el archivo de configuración de compilación, consulta Descripción general de la configuración de compilación.En el siguiente ejemplo,
gcr.io/google.com/cloudsdktool/cloud-sdk
se agota el tiempo de espera del paso de compilación después de 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 el ejemplo completo de un archivo de configuración de compilación básico:
En el ejemplo, las imágenes de contenedor se almacenan en Artifact Registry. Si el produce artefactos que no son contenedores, puedes almacenarlos Cloud Storage con el campo
artifacts
Si deseas obtener instrucciones para realizar esta tarea, consulta Almacena 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 compilación de Cloud Build.Agrega el campo steps. En la sección
steps
del archivo de configuración de compilación, se encuentran los pasos de compilación que quieres que Cloud Build realice.{ "steps": }
Agrega el primer paso. En
steps:
, agrega un camponame
y dirígelo a una imagen de contenedor para ejecutar la tarea. Cloud Build y su comunidad de desarrolladores proporcionan muchas imágenes de contenedores con herramientas comunes y lenguajes instalados en ellas. Puedes usar cualquiera de estas imágenes (también llamada Cloud Builders) o cualquier imagen disponible de forma pública en una compilación paso. Para obtener más información sobre diferentes tipos de imágenes de contenedor que puedes usar en un paso de compilación, consulta compiladores de cloud.En el siguiente fragmento, se muestra un paso de compilación con un compilador de
docker
(gcr.io/cloud-builders/docker
) que es una imagen de contenedor que ejecuta Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }
Agrega argumentos de paso. El campo
args
de un paso toma una lista de argumentos y los pasa al compilador al que se hace referencia en el camponame
. Si el compilador del camponame
tiene un punto de entrada,args
en la lista se usará para acceder a ese punto de entrada. Si el compilador del camponame
no tiene un Punto de entrada, el primer elemento deargs
se usa como punto de entrada.En el siguiente ejemplo:
build
es el punto de entrada al compilador en la nube de Docker.-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 compilará en Artifact Registry. En el paso de compilación, se usa la sustitución predeterminada para el ID del proyecto, por lo que este valor se sustituye automáticamente durante la compilación..
es la ubicación del código fuente, que indica la fuente. código 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", "." ] } ] }
Agrega más pasos. Puedes agregar cualquier cantidad de pasos de compilación al archivo de configuración de compilación si incluyes campos
name
adicionales y los diriges a compiladores en la nube.El siguiente fragmento agrega dos pasos más al archivo de configuración de compilación:
- Un paso de compilación de Docker para invocar el comando
docker push
, de modo que se envíe a Artifact Registry la imagen que se compiló en el paso anterior. un paso de compilación para el comando del SDK de Google Cloud con
gcloud
un punto de entrada especificado, que crea una instancia de Compute Engine desde 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 adicionales de configuración de compilación. Puedes configurar la compilación de forma más detallada si incluyes campos como
machineType
,tags
otimeout
. Para obtener una lista completa de los campos que puedes incluir en el archivo de configuración de compilación, consulta Descripción general de la configuración de compilación.En el siguiente ejemplo,
gcr.io/google.com/cloudsdktool/cloud-sdk
se agota el tiempo de espera del paso de compilación después de 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 el ejemplo completo de un archivo de configuración de compilación básico:
En el ejemplo, las imágenes de contenedor se almacenan en Artifact Registry. Si tu compilación produce artefactos que no son de contenedor, puedes almacenarlos en Cloud Storage con el campo
artifacts
. Si deseas obtener instrucciones para realizar esta tarea, consulta Almacena imágenes y artefactos.
Pasos siguientes
- Obtén información sobre cómo ejecutar tus compilaciones de forma manual y mediante activadores que usan el archivo de configuración de compilación.
- Obtén información sobre cómo escribir configuraciones de compilación para incluir dependencias y compilar, probar y, luego, implementar artefactos.