Cloud Build te permite crear activadores para compilar desde repositorios alojados en GitHub. Puedes ejecutar compilaciones en respuesta a eventos, como envíos de confirmaciones o solicitudes de combinación asociadas con tu repositorio de GitHub.
En esta página, se explica cómo puedes habilitar activadores de compilación para una instancia de GitHub. Para obtener más información, consulta Activadores de Cloud Build y Repositorios de Cloud Build.
Antes de comenzar
Sigue las instrucciones para conectarte a un host de GitHub.-
Enable the Cloud Build API.
Para crear un activador para un repositorio de GitHub, debes tener una conexión entre Google Cloud y tu repositorio. Para crear una conexión a través de la app de GitHub en Google Cloud, consulta Cómo conectarse a un repositorio de GitHub.
Crea un activador de GitHub
En esta sección, se explica cómo crear un activador y vincularlo a tu instalación de GitHub.
Google Cloud console
Para crear activadores de GitHub con la consola de Google Cloud , haz lo siguiente:
Abre la página Activadores en la Google Cloud consola.
Selecciona tu Google Cloud proyecto y haz clic en Abrir.
Haz clic en Crear activador.
Ingresa las siguientes opciones de configuración del activador:
Nombre: Ingresa un nombre para el activador.
Región: Selecciona la región para tu activador.
- Si el archivo de configuración de compilación asociado con el activador especifica un grupo privado, Cloud Build usa el grupo privado para ejecutar la compilación. En este caso, la región que especifiques en el activador debe coincidir con la región en la que creaste el grupo privado.
- Si el archivo de configuración de compilación asociado con el activador no especifica un grupo privado, Cloud Build usa el grupo predeterminado para ejecutar la compilación en la misma región que el activador.
Descripción (opcional): Ingresa una descripción para el activador.
Evento: Selecciona el evento de repositorio que invoca al activador.
Enviar a una rama: Configura el activador para que inicie compilaciones a partir de las confirmaciones en una rama en particular.
Enviar etiqueta nueva: Configura el activador para que inicie compilaciones a partir de las confirmaciones que contengan una etiqueta específica.
Solicitud de extracción: Configura el activador para que inicie compilaciones a partir de confirmaciones de solicitud de extracción.
Fuente: Configura la información de tu repositorio de GitHub:
Servicio de repositorio: Selecciona Cloud Build.
Generación de repositorios: Selecciona Developer Connect como fuente.
Repositorio: En la lista de repositorios disponibles, selecciona el que deseas.
Rama o Etiqueta: Especifica una expresión regular con la rama o el valor de la etiqueta que deben coincidir. Para obtener información acerca de la sintaxis de expresión regular aceptable, consulta Sintaxis RE2.
Control de comentarios: Si seleccionaste Solicitud de extracción como tu Evento, elige una de las siguientes opciones para controlar si el activador ejecutará una compilación de forma automática:
Es obligatorio excepto para los propietarios y colaboradores: Cuando un propietario o colaborador del repositorio crea o actualiza una solicitud de extracción, el activador ejecuta las compilaciones de forma automática. Si un colaborador externo inicia la acción, las compilaciones solo se ejecutan después de que el propietario o colaborador comente
/gcbrun
en la solicitud de extracción.Obligatorio: Cuando algún colaborador crea o actualiza una solicitud de extracción, las compilaciones solo se ejecutan después de que el propietario o el colaborador comente
/gcbrun
en la solicitud de extracción. Las compilaciones se ejecutan cada vez que se realiza un cambio en una solicitud de extracción.No obligatorio: Cuando cualquier colaborador crea o actualiza una solicitud de extracción, las compilaciones se ejecutan de forma automática con activadores.
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 intercalado para usarlo en tu compilación.
- Tipo: Selecciona el tipo de configuración que usarás para la compilación.
- Detectado automáticamente: Cloud Build detecta automáticamente tu tipo de configuración si tienes un
cloudbuild.yaml
oDockerfile
en tu repositorio. - Archivo de configuración de Cloud Build (YAML o JSON): Usa un archivo de configuración de compilación para la configuración.
- Dockerfile: Usa
Dockerfile
para la configuración. - Paquetes de compilación: Usa paquetes de compilación para tu configuración.
- Detectado automáticamente: Cloud Build detecta automáticamente tu tipo de configuración si tienes un
Ubicación: Especifica la ubicación de tu configuración.
- Repositorio: Si tu archivo de configuración se encuentra en tu repositorio remoto, proporciona la ubicación de tu archivo de configuración de compilación o el directorio
Dockerfile
y un nombre para la imagen resultante. Si tu configuración esDockerfile
, puedes proporcionar un tiempo de espera para la compilación de forma opcional. Cuando proporciones elDockerfile
y el nombre de la imagen, verás una vista previa del comandodocker build
que ejecutará tu compilación. - En línea: Si seleccionaste Archivo de configuración de Cloud Build (YAML o JSON) como tu opción de configuración, puedes especificar tu configuración de la compilación de forma intercalada. Haz clic en Abrir editor para escribir tu archivo de configuración de compilación en la consola deGoogle Cloud con la sintaxis de YAML o JSON. Haz clic en Listo para guardar la configuración de tu compilación.
- Repositorio: Si tu archivo de configuración se encuentra en tu repositorio remoto, proporciona la ubicación de tu archivo de configuración de compilación o el directorio
- Tipo: Selecciona el tipo de configuración que usarás para la compilación.
Variables de sustitución (opcional): Si seleccionaste el archivo de configuración de Cloud Build como la opción de configuración de compilación, puedes definir variables de sustitución específicas del activador mediante este campo. Por ejemplo, supongamos que creas varios activadores y que cada uno de ellos implementa tu app en un entorno específico. Puedes especificar que la app se implemente en un entorno del archivo de configuración de compilación y, luego, usar este campo para definir variables de sustitución que especifiquen en qué entorno debe implementarse este activador. Para obtener información sobre cómo especificar valores de sustitución en archivos de configuración de compilación, consulta Sustituye valores de variable.
Registros de compilación (opcional): Marca la casilla para enviar registros de compilación a GitHub. Para obtener información sobre cómo ver registros de compilación, consulta Cómo ver registros de compilación.
Cuenta de servicio: Selecciona la cuenta de servicio que se usará para invocar el activador. Si la política de tu organización permite usar la cuenta de servicio heredada de Cloud Build, puedes dejar este campo en blanco para usarla. De lo contrario, debes seleccionar la cuenta de servicio específica que deseas usar, incluso si es la cuenta de servicio predeterminada de Compute Engine.
Haz clic en Crear para guardar el activador de compilación.
A fin de crear activadores de GitHub con los comandos de gcloud
, consulta los comandos de gcloud
para crear un activador de compilación.
gcloud CLI
Para crear activadores de GitHub con los comandos de gcloud
, ejecuta el siguiente
comando:
gcloud alpha builds triggers create developer connect
--name=TRIGGER_NAME \
--git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION \
--service-account=SERVICE-ACCOUNT
Aquí:
- TRIGGER_NAME es el nombre del activador.
- PROJECT_ID es el Google Cloud ID de tu proyecto.
- REGION es la región de tu activador.
- CONNECTION_NAME es el nombre de tu conexión de GitHub.
- GIT_REPOSITORY_LINK es el vínculo a tu repositorio de Git.
- BRANCH_PATTERN es el nombre de la rama en tu repositorio para invocar la compilación.
- TAG_PATTERN es el nombre de la etiqueta en tu repositorio para invocar la compilación.
- BUILD_CONFIG_FILE es la ruta de acceso al archivo de configuración de compilación.
- SERVICE-ACCOUNT es la cuenta de servicio que se usará para las operaciones de activación y compilación.
API
Para crear un activador de GitHub con la API, usa la siguiente plantilla JSON:
{
"filename": "cloudbuild.yaml",
"name": "TRIGGER_NAME",
"description": "TRIGGER_DESCRIPTION",
"serviceAccount": "SERVICE_ACCOUNT",
"github": {
"owner": "OWNER",
"name": "REPO_NAME",
"push": {
"branch": ".*"
},
},
"include_build_logs": include-build-logs-value
}
Aquí:
- TRIGGER_NAME es un nombre para el activador.
- TRIGGER_DESCRIPTION es una descripción del activador.
- SERVICE_ACCOUNT es la cuenta de servicio que se usará para las operaciones de activación y compilación.
- OWNER es el propietario del repositorio de GitHub.
- REPO_NAME es el nombre del repositorio de GitHub.
- include-build-logs-value es el valor del campo opcional
include_build_logs
. Si este campo tiene un valor deINCLUDE_BUILD_LOGS_SPECIFIED
, los registros de compilación se muestran en tu repositorio.
Ingresa el siguiente comando curl
en la terminal:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json
Aquí:
- PROJECT_NUMBER es el Google Cloud número de proyecto.
- PROJECT_ID es el Google Cloud ID de tu proyecto.
Compila y visualiza tus cambios
Para compilar con activadores de GitHub, deberás enviar y confirmar los cambios en tu repositorio de origen conectado o configurar tu compilación en solicitudes de extracción. Una vez que hayas registrado los cambios, Cloud Build compilar tu código.
Para ver los cambios de compilación en GitHub, ve a la pestaña Verificaciones en tu repositorio.
Verás que Cloud Build compiló tus cambios. También verás otros detalles de compilación, como el tiempo que demoró en compilarse tu código y el ID de compilación.
Para ver los cambios de compilación en Cloud Build, haz clic en Ver más detalles de Google Cloud Build. Se abrirá la página Detalles de compilación en Google Cloud console, en la que podrás ver información de compilación, como el estado, los registros y los pasos de compilación.
Uso compartido de datos
Los datos que se envían a GitHub desde Cloud Build te ayudan a identificar los activadores por nombre y ver los resultados de la compilación en GitHub.
Actualmente, los datos siguientes se comparten entre Cloud Build y GitHub:
- ID del proyecto de nube
- Nombre del activador
- Registros de compilaciones
Si creaste activadores antes de agosto de 2020, es posible que el uso compartido de datos no esté habilitado para tu proyecto. A fin de habilitar el uso compartido de datos para todos los activadores de GitHub de tu proyecto, haz clic en Habilitar en la pestaña de uso compartido de datos de Cloud Build.
Si habilitaste las verificaciones de estado obligatorias para un repositorio de GitHub, habilitar el uso compartido de datos puede interrumpir de forma temporal las verificaciones de estado. Puedes ajustar la configuración de la verificación de estado para buscar el nombre de tu activador de la siguiente manera:
- Inhabilita cualquier verificación necesaria específica de Cloud Build en el repositorio de GitHub.
- Asegúrate de que el uso compartido de datos esté habilitado en Cloud Build.
- Ejecuta una compilación nueva en Cloud Build que publique estados en tu repositorio.
- Vuelve a habilitar las verificaciones de estado necesarias y selecciona el nombre del activador.
¿Qué sigue?
- Aprende a crear y administrar activadores de compilación.
- Obtén información para realizar implementaciones azul-verde en Compute Engine.