Puedes usar un activador de Cloud Build para iniciar una compilación de forma automática e implementar un flujo de trabajo desde un repositorio de Git. Puedes configurar el activador para implementar tu flujo de trabajo en cualquier cambio en el repositorio de código fuente o implementar el de Terraform solo cuando el cambio coincide con criterios específicos.
Este enfoque puede ayudarte a administrar el ciclo de vida de la implementación. Por ejemplo, puede implementar cambios en un flujo de trabajo en un entorno de etapa de pruebas, ejecutar pruebas ese entorno y, luego, implementar de forma incremental estos cambios en entorno de producción.
Antes de comenzar
En estas instrucciones, se da por sentado que tienes
Rol de editor de Cloud Build
(roles/cloudbuild.builds.editor
) en tu proyecto de Google Cloud para que
pueden crear activadores. También necesitas un flujo de trabajo en un repositorio de código fuente, como
GitHub o Bitbucket.
Console
Habilitar las APIs de Cloud Build y Workflows
Otorga el rol de administrador de flujos de trabajo (
roles/workflows.admin
) a la cuenta de servicio de Cloud Build de la siguiente manera:En la consola de Google Cloud, ve 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 Administrador de flujos de trabajo. en el área de la seguridad en la nube.
Haz clic en Guardar.
Otorga el rol Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en el servicio predeterminado de Compute Engine a la cuenta de servicio de Cloud Build. Cuando habilitaste la API de Compute Engine, la cuenta de servicio predeterminada de Compute Engine esPROJECT_NUMBER-compute@developer.gserviceaccount.com
.En la consola de Google Cloud, 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 Cuentas de servicio. > Usuario de cuenta de servicio.
Haz clic en Guardar.
gcloud
Habilitar las APIs de Cloud Build y Workflows
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.com
Otorga el rol de administrador de flujos de trabajo (
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@cloudbuild.gserviceaccount.com \ --role=roles/workflows.admin
Reemplaza
PROJECT_ID
por el ID del proyecto de Google Cloud.Otorga el rol Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en el servicio predeterminado de Compute Engine a la cuenta de servicio de Cloud Build. Cuando tengas habilitaste la API de Compute Engine la cuenta de servicio predeterminada de Compute EnginePROJECT_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 puede automatizar las compilaciones en respuesta a eventos que ocurren en el repositorio.
Completa los siguientes pasos para conectarte a GitHub o Bitbucket:
En la consola de Google Cloud, ve a Activadores de Cloud Build. página:
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 una. tu desencadenante.
Haz clic en Conectar repositorio.
Selecciona el repositorio de código fuente en el que almacenaste tu código fuente.
Por ejemplo: GitHub (app de GitHub de Cloud Build)
Haga 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 Google App de GitHub de Cloud Build para acceder a tu cuenta de GitHub y 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 proyecto de Google Cloud con el que estás trabajando.
Lee la renuncia de responsabilidad y selecciona la casilla de verificación junto a ella para indicar que consentimiento a las condiciones.
Haz clic en Conectar.
Para seguir creando un activador de compilación a fin de automatizar las compilaciones para el 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 la 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 se pasa la prueba, el flujo de trabajo implementadas:
Cloud Build propaga las variables de sustitución $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 sustitución $_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 si creas un activador de Cloud Build.
Si deseas crear un activador de compilación para el archivo de configuración en la sección anterior, haz lo siguiente:
En la consola de Google Cloud, dirígete a Cloud Build Página de activadores:
Haz clic en Crear activador.
En el campo Nombre, ingresa un nombre para el activador.
En Evento, selecciona el evento que invocará al 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 coinciden con una rama o etiqueta.
Por ejemplo:
GoogleCloudPlatform/workflows-demos
(repositorio) y^main$|^staging$
(coincide con las ramasmain
ystaging
)Expande la sección Mostrar filtros de archivos incluidos y omitidos y especifica tu flujo de trabajo como un archivo incluido para que, cuando se modifique, se invoque una compilación.
Por ejemplo:
gitops/workflow.yaml
En Configuración, selecciona Archivo de configuración de Cloud Build (YAML o JSON) como el tipo y Repositorio como la posición.
En el campo Ubicación del archivo de configuración de Cloud Build, haz lo siguiente: especificar la ubicación del archivo.
Por ejemplo:
gitops/cloudbuild.yaml
De manera opcional, para agregar una variable de sustitución, 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ían cambios a un flujo de trabajo en la rama especificada de Git Cloud Build se activará automáticamente para implementar el en 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
staging
del repositorio de Git, editaworkflow.yaml
. cambiaHello World
aBye World
:Confirma y envía el cambio a la rama
staging
.git add workflow.yaml git commit -m "Update workflow.yaml in staging" git push
El activador de Cloud Build ejecuta y, luego, inicia una compilación.
Para confirmar el éxito de la compilación, en la consola de Google Cloud, dirígete a la página Historial de compilación:
Ir a Historial de compilaciones
Cuando se completa una compilación, Cloud Build proporciona un estado general para la compilación y para cada paso individual. Para obtener más información, consulta Mira los resultados de la compilación.
Para confirmar que se implementó un flujo de trabajo de etapa de pruebas, en la consola de Google Cloud, ve a la página Flujos de trabajo:
Deberías ver un flujo de trabajo llamado
workflows-gitops-staging
en la lista.Para implementar el flujo de trabajo de etapa de pruebas en producción, combina la rama
staging
con la ramamain
:git checkout main git merge staging git push
Ten en cuenta que, debido a que
test-main.sh
esperaHello World
en el resultado de flujo de trabajo, la compilación fallará:Para implementar correctamente un flujo de trabajo de producción, en la rama
staging
, editaworkflow.yaml
de nuevo y vuelve a cambiar la cadena aHello World
.Confirma y envía el cambio a la rama
staging
y, luego, combina losstaging
a la ramamain
.Para confirmar que se implementa un flujo de trabajo de producción, en la consola de Google Cloud, ve a la página Flujos de trabajo:
Deberías ver un flujo de trabajo llamado
workflows-gitops-main
en 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.