Puedes integrar Cloud Deploy con algunos de los otros sistemas que usas para la entrega de software. En esta página, se describe cómo integrar Cloud Deploy con lo siguiente:
- Herramientas de prueba
- Administración de flujos de trabajo
Consulta Integra en tu sistema de CI para aprender a llamar a Cloud Deploy desde tu canalización de CI.
Antes de comenzar
En las instrucciones de esta página, se supone que ya cumples con las siguientes condiciones:
Debes haber habilitado las APIs aplicables.
Tienes al menos una canalización de entrega definida y registrado con Cloud Deploy.
Tienes al menos un objetivo definido, y las referencias de la canalización de entrega a ese destino.
Si configuraste las notificaciones de Pub/Sub. para recibir notificaciones de los siguientes temas:
clouddeploy-operations
clouddeploy-approvals
Integración en pruebas automatizadas
Puedes usar Cloud Deploy con Pub/Sub para integrar pruebas con tu canalización de entrega, de modo que puedas promover la versión automáticamente para y la entrega continua.
También puedes usar anotaciones en un lanzamiento para proporcionar un vínculo a los resultados de la prueba. Para obtener más información, consulta Cómo usar etiquetas y anotaciones con Cloud Deploy.
Usa Pub/Sub para automatizar la promoción
Escucha mensajes de Pub/Sub del tema
clouddeploy-operations
.El mensaje contiene los siguientes atributos:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Cuando recibas una notificación que indique que la implementación se realizó correctamente, ejecuta las pruebas. en la aplicación implementada.
Cuando tus pruebas tengan éxito, llama a Cloud Deploy para activar automáticamente pasar a la siguiente etapa:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
Donde:
RELEASE_NAME
es el nombre del lanzamiento. Es obligatorio ingresar este valor.
PIPELINE_NAME
es el nombre de la canalización de entrega que administra esta versión. Este valor es de como en los productos necesarios.
REGION
es la región en la que se ejecuta la canalización. Si configuraste la propiedad
deploy/region
, puedes omitir esta marca.KEY=VALUE,...
es una lista de uno o más pares clave-valor de cadenas, separados por comas, que pueden contener información sobre los resultados de sus pruebas y otros datos relacionados. A continuación, se presenta un ejemplo:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
Las anotaciones sobre el lanzamiento son inmutables, por lo que si agregas un estado no podrás actualizar ese estado más adelante en el mismo lanzamiento.
Cómo usar anotaciones para proporcionar acceso a los resultados de las pruebas
Si tienes la URL que dirige a la ubicación a la que se puede acceder a los resultados de la prueba, puedes proporcionar esa URL como una anotación en un lanzamiento con la marca --annotations
.
A continuación, se presenta un ejemplo:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
Para obtener más información, consulta Cómo usar etiquetas y anotaciones con Cloud Deploy.
Integra en la administración de flujos de trabajo de terceros
Cloud Deploy publica mensajes operativos en Pub/Sub. Tu herramienta de administración del flujo de trabajo puede suscribirse a estos temas de Pub/Sub y usarlos para activar flujos de trabajo específicos.
Para las aprobaciones
El tema clouddeploy-approvals
notifica a tu sistema cuando se produce una aprobación
necesarios para el lanzamiento. Tu sistema de flujo de trabajo externo
puede hacer su magia para
obtén la aprobación y, luego, llama a gcloud deploy rollouts approve
.
La cuenta que emite el comando rollouts approve
debe tener el rol de IAM predefinido roles/clouddeploy.approver
.
Para configurar un flujo de trabajo de aprobación externo, sigue estos pasos:
Exigir aprobación en el destino.
En la definición de ese destino, incluye
requireApproval: true
.Para consumir los mensajes, suscríbete a
clouddeploy-approvals
. tema de Pub/Sub y configura tu sistema de administración de flujos de trabajo.Cuando tu sistema de administración de flujos de trabajo recibe un mensaje del tema
clouddeploy-approvals
que incluye"Action": "Required"
, inicia un flujo de trabajo de aprobación, configurado según los requisitos de tu organización.El mensaje también incluye una referencia al lanzamiento que se aprobará, en el con el siguiente formato:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
El resultado del flujo de trabajo de aprobación es una aprobación o rechazo. del lanzamiento.
El sistema de administración del flujo de trabajo devuelve la aprobación o el rechazo a Cloud Deploy en la forma del siguiente comando:
El comando para la aprobación es el siguiente:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
El comando para rechazar el lanzamiento es el siguiente:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
Donde:
ROLLOUT
es el nombre del lanzamiento para el que se solicitó la aprobación.
PIPELINE_NAME
es la canalización de entrega que administra la implementación de tu aplicación.
RELEASE_NAME
es el nombre de la versión con la que está asociado este lanzamiento.
REGION
es la región en la que se ejecuta la canalización de entrega.
Por ejemplo:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1