Puedes usar un activador de compilación de Cloud Build para iniciar automáticamente una compilación y, luego, implementar un flujo de trabajo desde un repositorio de Git. Puedes configurar el activador para implementar tu flujo de trabajo ante cualquier cambio en el repositorio de código fuente o solo cuando el cambio coincida con criterios específicos.
Este enfoque puede ayudarte a administrar el ciclo de vida de implementación. Por ejemplo, puedes implementar cambios en un flujo de trabajo en un entorno de etapa de pruebas, ejecutar pruebas en ese entorno y, luego, implementar estos cambios de forma incremental en el entorno de producción.
Antes de comenzar
En estas instrucciones, se supone que tienes el
rol de editor de Cloud Build
(roles/cloudbuild.builds.editor) en tu Google Cloud proyecto para que puedas
crear activadores. También necesitas un flujo de trabajo en un repositorio de código fuente, como GitHub o Bitbucket.
Console
Habilita las APIs de Cloud Build y Workflows.
Otorga el rol de administrador de Workflows (
roles/workflows.admin) a la cuenta de servicio de Cloud Build de la siguiente manera:En la Google Cloud consola de, dirígete a la página IAM.
Elige tu proyecto.
En la fila de la cuenta de servicio de Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com), haz clic en Editar principal.Haz clic en Agregar otro rol.
En la lista Rol, selecciona el rol de administrador de Workflows.
Haz clic en Guardar.
Otorga el rol de usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio predeterminada de Compute Engine a la cuenta de servicio de Cloud Build. Cuando habilitas la API de Compute Engine, la cuenta de servicio predeterminada de Compute Engine esPROJECT_NUMBER-compute@developer.gserviceaccount.com.En la Google Cloud consola de, ve a la página Cuentas de servicio.
Elige tu proyecto.
Haz clic en la dirección de correo electrónico de la cuenta de servicio predeterminada de Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).Haz clic en la pestaña Permisos.
Haz clic en el botón Otorgar acceso.
Para agregar una principal nueva, ingresa la dirección de correo electrónico de tu cuenta de servicio (
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).En la lista Seleccionar un rol, selecciona el rol Cuentas de servicio > Usuario de cuenta de servicio.
Haz clic en Guardar.
gcloud
Habilita las APIs de Cloud Build y Workflows.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.comOtorga el rol de administrador de Workflows (
roles/workflows.admin) a la cuenta de servicio de Cloud Build de la siguiente manera:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@clogserviceaccount.comudbuild. \ --role=roles/workflows.adminReemplaza
PROJECT_IDpor el ID de tu Google Cloud proyecto.Otorga el rol de usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio predeterminada de Compute Engine a la cuenta de servicio de Cloud Build. Cuando habilitas la API de Compute Engine, la cuenta de servicio predeterminada de Compute Engine esPROJECT_NUMBER-compute@developer.gserviceaccount.com.gcloud iam service-accounts add-iam-policy-binding \ $PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/iam.serviceAccountUser
Conéctate a tu repositorio de código fuente
Debes conectar Cloud Build a tu repositorio de código fuente para que Cloud Build pueda automatizar las compilaciones en respuesta a eventos que ocurren en el repositorio.
Completa los siguientes pasos para conectarte a GitHub o Bitbucket:
En la Google Cloud consola, ve a la página Activadores de Cloud Build:
Si es necesario, selecciona tu proyecto y haz clic en Abrir.
En la lista Región, selecciona la región en la que deseas crear el activador.
Haz clic en Conectar repositorio.
Selecciona el repositorio de código fuente en el que almacenaste el código fuente.
Por ejemplo: GitHub (app de GitHub de Cloud Build)
Haz clic en Continuar.
Autentica el repositorio de código fuente con tu nombre de usuario y contraseña.
Si accedes a GitHub, se te pedirá que autorices a la app de GitHub de Google Cloud Build para que acceda a tu cuenta de GitHub para continuar.
En la lista de repositorios disponibles, selecciona el repositorio que deseas y, luego, haz clic en Aceptar.
En el caso de los repositorios externos, como GitHub y Bitbucket, debes tener permisos de nivel de propietario para el Google Cloud proyecto en el que estás trabajando.
Lee la renuncia de responsabilidad y selecciona la casilla de verificación junto a ella para indicar que aceptas los términos.
Haz clic en Conectar.
Para continuar creando un activador de compilación que automatice las compilaciones del código fuente en el repositorio, haz clic en Crear un activador. De lo contrario, haz clic en Listo.
Crea un archivo de configuración de Cloud Build
Un archivo de configuración de compilación define los campos que se necesitan cuando se usa un activador de compilación para iniciar una compilación. Crea el archivo de configuración en el directorio raíz de tu proyecto y escríbelo con YAML o JSON.
Por ejemplo, el siguiente archivo de configuración implementa y ejecuta un flujo de trabajo de prueba y, luego, usa una secuencia de comandos para verificar el resultado. Si la prueba se aprueba, se implementa el flujo de trabajo:
Cloud Build propaga las variables de reemplazo $BRANCH_NAME y $SHORT_SHA
cuando se activa una compilación desde un repositorio de Git. Representan el nombre de tu rama y los primeros siete caracteres del ID de confirmación asociado con tu compilación, respectivamente.
La variable de reemplazo $_WORKFLOW_NAME te permite volver a usar un archivo de configuración con diferentes valores de variables. Puedes especificar su valor cuando creas el activador de compilación.
Para obtener más información, consulta Crea un archivo de configuración de compilación.
Crea un activador de compilación
Puedes automatizar la implementación de tu flujo de trabajo mediante la creación de un activador de compilación de Cloud Build.
Para crear un activador de compilación para el archivo de configuración de la sección anterior, haz lo siguiente:
En la Google Cloud consola de, ve a la página Activadores de Cloud Build:
Haz clic en Crear activador.
En el campo Nombre, ingresa un nombre para el activador.
En Evento, selecciona el evento para invocar el activador.
Por ejemplo: Enviar a una rama
En Fuente, selecciona el repositorio y el nombre de la rama o de la etiqueta que iniciará el activador. Puedes usar una expresión regular para especificar una coincidencia con una rama o etiqueta.
Por ejemplo:
GoogleCloudPlatform/workflows-demos(repositorio) y^main$|^staging$(coincide con las ramasmainystaging)Expande la sección Mostrar filtros de archivos incluidos e ignorados y especifica tu flujo de trabajo como un archivo incluido para que, cuando se cambie, se invoque una compilación.
Por ejemplo:
gitops/workflow.yamlEn Configuración, selecciona Archivo de configuración de Cloud Build (YAML o JSON) como el tipo y Repositorio como la ubicación.
En el campo Ubicación del archivo de configuración de Cloud Build , especifica la ubicación de tu archivo.
Por ejemplo:
gitops/cloudbuild.yamlDe manera opcional, para agregar una variable de reemplazo, haz clic en Agregar variable y especifica una combinación de clave y valor.
Por ejemplo:
_WORKFLOW_NAME(variable) yworkflows-gitops(valor)Para guardar el activador de compilación, haz clic en Crear.
Cuando se envíen cambios a un flujo de trabajo en la rama especificada del repositorio de Git, se activará automáticamente Cloud Build para implementar el flujo de trabajo.
Para obtener más información, consulta Crea y administra activadores de compilación.
Prueba el activador de compilación
Puedes probar el activador de compilación y el archivo de configuración de las secciones anteriores.
En la rama
stagingdel repositorio de Git, editaworkflow.yamly cambiaHello WorldporBye World:Confirma y envía el cambio a la rama
staging.git add workflow.yaml git commit -m "Update workflow.yaml in staging"git pushSe ejecuta el activador de Cloud Build y se inicia una compilación.
Para confirmar el éxito de la compilación, en la Google Cloud consola de, ve a la página Historial de compilación:
Una vez que se completa una compilación, Cloud Build proporciona un estado general de la compilación y de cada paso de compilación individual. Para obtener más información, consulta Visualiza los resultados de la compilación.
Para confirmar que se implementó un flujo de trabajo de etapa de pruebas, en la Google Cloud consola, ve a la página Workflows:
Deberías ver un flujo de trabajo llamado
workflows-gitops-stagingen la lista.Para implementar el flujo de trabajo de etapa de pruebas en producción, combina la rama
stagingcon la ramamain:git checkout main git merge staging git pushTen en cuenta que, debido a que
test-main.shesperaHello Worlden el resultado del flujo de trabajo, la compilación fallará:Para implementar correctamente un flujo de trabajo de producción, en la rama
staging, vuelve a editarworkflow.yamly cambia la cadena aHello World.Confirma y envía el cambio a la rama
stagingy, luego, combina la ramastagingcon la ramamain.Para confirmar que se implementó un flujo de trabajo de producción, en la Google Cloud consola, ve a la página Workflows:
Deberías ver un flujo de trabajo llamado
workflows-gitops-mainen la lista.
¿Qué sigue?
- Obtén más información sobre Cloud Build.
- Obtén más información para solucionar errores de compilación.
- Obtén más información para solucionar problemas de Workflows.