En este tema se describe cómo automatizar compilaciones con Cloud Build y Cloud Source Repositories.
Puedes configurar Cloud Build para que compile automáticamente una imagen nueva cada vez que un usuario envíe un cambio a los archivos almacenados en Cloud Source Repositories. Los eventos que inician compilaciones automáticas se denominan activadores de compilación. Estos activadores pueden ayudarte a asegurarte de que tus imágenes de contenedor estén actualizadas. También puedes usarlas para crear y probar ramas de funciones.
Los activadores de compilación pueden realizar una compilación basada en un Dockerfile o en un archivo de configuración de compilación.
Usar un Dockerfile
Para usar un Dockerfile en tu configuración de compilación, debes especificar el directorio de Dockerfile y proporcionar un nombre para la imagen resultante. Para obtener más información sobre cómo crear archivos Dockerfile, consulta la documentación de Docker.
Después de proporcionar el Dockerfile y el nombre de la imagen, verás una vista previa del comando docker build
que ejecuta tu compilación y un resumen de la configuración del activador.
Usar un archivo de configuración de compilación
Para usar un archivo de configuración de compilación en tu configuración de compilación, debes proporcionar la ubicación de un archivo de configuración de compilación.
Una vez que hayas definido la ubicación, verás un resumen del activador.
Antes de empezar
Habilita la API Cloud Build.
Asegúrate de que tienes el código fuente en Cloud Source Repositories.
Asegúrate de tener un Dockerfile o un archivo de configuración de compilación.
Si usas una cuenta de servicio que no sea la predeterminada de Cloud Build, consulta la página de Cloud Build sobre cómo configurar cuentas de servicio especificadas por los usuarios.
Información adicional
Los activadores de compilación usan clones superficiales de un repositorio. Con las copias superficiales, solo se extrae en el espacio de trabajo la única confirmación que ha activado una compilación automática. Para obtener más información y saber cómo incluir más historial de tus repositorios, consulta Clonaciones no superficiales.
Si usas otro proveedor de Git alojado, como GitHub o Bitbucket, y sigues necesitando duplicar el repositorio en Cloud Source Repositories, debes tener el permiso
cloudbuilds.builds.create
para el Google Cloud proyecto con el que estés trabajando. Este permiso se suele conceder a través del rolcloudbuild.builds.editor
.Cuando configures un activador de compilación con un repositorio externo por primera vez, tendrás que configurar la autorización con ese repositorio. Para obtener más información, consulta Añadir un repositorio como remoto.
Una vez que hayas configurado tu repositorio externo, Cloud Source Repositories creará una réplica de tu repositorio.
Para obtener información sobre las cuotas y los límites de Cloud Build, consulta la sección Cuotas y límites de la documentación de Cloud Build.
Crear un activador de compilación
Consola
Abre la página Triggers (Activadores) en la consola de Google Cloud .
Selecciona tu proyecto en el menú desplegable del selector de proyectos situado en la parte superior de la página.
Haz clic en Abrir.
Haz clic en Crear activador.
Introduce los siguientes ajustes del activador:
Nombre: introduce un nombre para el activador.
Descripción (opcional): escribe una descripción del activador.
Evento: selecciona el evento del repositorio para invocar el activador.
Enviar a una rama: configura el activador para iniciar una compilación en las confirmaciones de una rama concreta.
Enviar nueva etiqueta: configura el activador para que inicie una compilación en las confirmaciones que contengan una etiqueta concreta.
Fuente: selecciona el repositorio y la rama o etiqueta correspondientes para detectar eventos.
- Repositorio: en la lista de repositorios disponibles, selecciona el que quieras. Para conectar un repositorio nuevo, consulta Conectarse a repositorios de origen.
Cuando se ejecute tu compilación, el contenido de tu repositorio se copiará en
/workspace
, el directorio de trabajo predeterminado que usa Cloud Build. Consulta más información sobre los directorios de trabajo en la página de descripción general de la configuración de compilación.- Rama o Etiqueta: especifica una expresión regular con el valor de la rama o de la etiqueta que quieras que coincida. No se pueden usar barras diagonales (
/
) en las etiquetas. Para obtener más información sobre la sintaxis válida de las expresiones regulares, consulta la sintaxis de RE2.
Configuración: selecciona el archivo de configuración de compilación ubicado en tu repositorio remoto o crea un archivo de configuración de compilación insertado para usarlo en tu compilación.
- Tipo: selecciona el tipo de configuración que quieras usar en tu compilación.
- Archivo de configuración de Cloud Build (yaml o json): usa un archivo de configuración de compilación para tu configuración.
- Dockerfile usa un
Dockerfile
para tu configuración. - Paquetes de compilación: usa paquetes de compilación para tu configuración.
Ubicación: especifica la ubicación de la configuración.
- Repositorio: si el archivo de configuración se encuentra en tu repositorio remoto, indica la ubicación del archivo de configuración de compilación, el directorio
Dockerfile
o el directorio de paquetes de compilación. Si el tipo de configuración de compilación esDockerfile
o un paquete de compilación, tendrás que proporcionar un nombre para la imagen resultante y, opcionalmente, un tiempo de espera para la compilación. Cuando hayas proporcionado el nombre de laDockerfile
o de la imagen del buildpack, verás una vista previa del comandodocker build
opack
que ejecutará tu compilación. - Variables de entorno de buildpack (opcional): si has seleccionado
buildpacks
como tipo de configuración, haz clic en Añadir variable de entorno de paquete para especificar las variables de entorno y los valores de tu buildpack. Para obtener más información sobre las variables de entorno de los paquetes de compilación, consulte Variables de entorno. En línea: si has seleccionado Archivo de configuración de Cloud Build (yaml o json) como opción de configuración, puedes especificar la configuración de compilación en línea. Haz clic en Abrir editor para escribir el archivo de configuración de la compilación en la consolaGoogle Cloud con la sintaxis YAML o JSON. Haz clic en Hecho para guardar la configuración de compilación.
- Repositorio: si el archivo de configuración se encuentra en tu repositorio remoto, indica la ubicación del archivo de configuración de compilación, el directorio
- Tipo: selecciona el tipo de configuración que quieras usar en tu compilación.
Cuenta de servicio: selecciona la cuenta de servicio que quieras usar al invocar el activador. Si no seleccionas ninguna cuenta de servicio, se usará la cuenta de servicio de Cloud Build predeterminada.
Haz clic en Crear para guardar el activador de compilación.
gcloud
Ejecuta el siguiente comando:
gcloud beta builds triggers create cloud-source-repositories \
--repo=REPO_NAME \
--branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
--build-config=BUILD_CONFIG_FILE \
--service-account=SERVICE_ACCOUNT \
--require-approval
Donde:
- REPO_NAME es el nombre de tu repositorio.
- BRANCH_PATTERN es el nombre de la rama de tu repositorio en la que se invoca la compilación.
- TAG_PATTERN es el nombre de la etiqueta de tu repositorio para invocar la compilación.
- BUILD_CONFIG_FILE es la ruta a tu archivo de configuración de compilación.
- SERVICE_ACCOUNT (vista previa) es el correo asociado a tu cuenta de servicio. Si no incluyes esta marca, se usará la cuenta de servicio de Cloud Build predeterminada.
- [Opcional]
--require-approval
es la marca que debes incluir para configurar tu activador para que requiera aprobación.
Para ver una lista completa de las marcas, consulta la referencia de gcloud
sobre cómo crear activadores para Cloud Source Repositories.
Después de ejecutar el comando gcloud
para crear un activador con Cloud Source Repositories, deberías ver un resultado similar al siguiente:
NAME CREATE_TIME STATUS
trigger-001 2019-10-30T20:45:03+00:00
Ver activadores de compilación
Para ver los activadores en la Google Cloud consola, abre la página Activadores de Cloud Build.
Para ver los activadores de un proyecto determinado en Cloud Source Repositories, haga clic en Configuración
en la parte superior derecha y, a continuación, en Activadores de Cloud Build.Omitir un activador de compilación
En algunos casos, puede que quieras cambiar el código fuente, pero no quieras activar una compilación. Por ejemplo, cuando actualizas archivos de documentación o de configuración.
En estos casos, puedes incluir [skip ci]
o [ci skip]
en el mensaje de confirmación,
y no se activará ninguna compilación.
Por ejemplo:
Author: A User <auser@example.com>
Date: Tue Apr 3 12:03:35 2018 -0700
Fixed customer affecting issue. [skip ci]
Si quieres ejecutar una compilación en esa confirmación más adelante, usa el botón Ejecutar activador.
Desactivar la clonación superficial
Para compilar tu fuente en un repositorio de Git, Cloud Source Repositories realiza una clonación superficial del repositorio. Cuando Cloud Source Repositories realiza una clonación superficial, solo extrae del espacio de trabajo la única confirmación que ha activado la compilación y, a continuación, compila a partir de ese origen. Cloud Source Repositories no extrae ninguna otra rama ni historial. Esto se hace por eficiencia. Las compilaciones no se retrasan mientras Cloud Source Repositories obtiene todo el repositorio y el historial solo para compilar a partir de una única confirmación.
Para incluir más historial de tu repositorio en la compilación, añade un paso de compilación en el archivo de configuración de la compilación para "desprofundizar" la clonación. Por ejemplo:
steps:
- name: gcr.io/cloud-builders/git
args: ['fetch', '--unshallow']
...
Para obtener más información sobre git fetch
, consulta la referencia de Git.
Para obtener instrucciones sobre cómo escribir un archivo de configuración de compilación, consulta la descripción general de la configuración de compilación.
Siguientes pasos
- Consulta cómo iniciar compilaciones manualmente en Cloud Build.
- Consulta más información sobre cómo crear, probar y desplegar artefactos.