É possível integrar o Cloud Deploy a alguns dos outros sistemas em que você confia para a entrega de software. Esta página descreve como integrar o Cloud Deploy com o seguinte:
- Ferramentas de teste
- Gerenciamento do fluxo de trabalho
Consulte Como integrar com seu sistema de CI para saber como chamar o Cloud Deploy do seu pipeline de CI.
Antes de começar
As instruções nesta página pressupõem que você já atende às seguintes condições:
Você tem pelo menos um pipeline de entrega definido. e registrado com o Cloud Deploy.
você tem pelo menos um destino definido, e o pipeline de entrega referencia esse destino;
Você configurou as notificações do Pub/Sub para receber notificações dos seguintes tópicos:
clouddeploy-operations
clouddeploy-approvals
Como fazer a integração com testes automatizados
O Cloud Deploy pode ser usado com o Pub/Sub para integrar testes com seu pipeline de entrega, para que você possa promover o lançamento automaticamente para entrega contínua.
Também é possível usar anotações em um lançamento para fornecer um link de teste. Para mais informações, consulte Como usar rótulos e anotações com o Cloud Deploy.
Como usar o Pub/Sub para automatizar a promoção
Detecte mensagens do Pub/Sub do tópico
clouddeploy-operations
.A mensagem contém os seguintes atributos:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Quando você receber uma notificação de que a implantação foi bem-sucedida, execute os testes no aplicativo implantado.
Quando os testes forem bem-sucedidos, chame o Cloud Deploy para promover automaticamente o próximo estágio:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
em que:
RELEASE_NAME
é o nome da versão. Esse valor é obrigatório.
PIPELINE_NAME
é o nome do pipeline de entrega que gerencia esta versão. Esse valor é obrigatórios.
REGION
é a região em que o pipeline está sendo executado. Se você definiu a propriedade
deploy/region
, pode omitir essa flag.KEY=VALUE,...
é uma lista de um ou mais pares de strings de chave-valor, separados por vírgula, que podem contêm informações sobre os resultados e outras informações do teste. Veja um exemplo:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
As anotações na implementação são imutáveis. Portanto, se você adicionar uma anotação de status, não será possível atualizar esse status posteriormente no mesmo lançamento.
Como usar anotações para fornecer acesso a resultados de testes
Se você tiver o URL que aponta para onde os resultados do teste podem ser acessados, forneça
esse URL como uma anotação em um lançamento, usando a sinalização --annotations
.
Veja um exemplo:
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 mais informações, consulte Como usar rótulos e anotações com o Cloud Deploy.
Integração com o gerenciamento de fluxos de trabalho de terceiros
O Cloud Deploy publica mensagens operacionais no Pub/Sub. Sua ferramenta de gerenciamento de fluxo de trabalho pode se inscrever nesses tópicos do Pub/Sub e usá-los para acionar fluxos de trabalho específicos.
Para aprovações
O tópico clouddeploy-approvals
notifica seu sistema quando uma aprovação é necessária para um lançamento. Seu sistema de fluxo de trabalho externo pode trabalhar na mágica para
receber a aprovação e, em seguida, chamar gcloud deploy rollouts approve
.
A conta que emite o comando rollouts approve
precisa ter o papel predefinido
roles/clouddeploy.approver
do IAM.
Para configurar um fluxo de trabalho de aprovação externo:
-
Na definição desse destino, inclua
requireApproval: true
. Para consumir as mensagens, inscreva-se no tópico
clouddeploy-approvals
do Pub/Sub e configure o sistema de gerenciamento do fluxo de trabalho.Quando seu sistema de gerenciamento de fluxo de trabalho recebe uma mensagem do tópico
clouddeploy-approvals
que inclui"Action": "Required"
, ele inicia um fluxo de trabalho de aprovação, configurado de acordo com os requisitos da sua organização.A mensagem também inclui uma referência ao lançamento a ser aprovado, no seguinte formato:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
A saída do fluxo de trabalho de aprovação é uma aprovação ou rejeição do lançamento.
Seu sistema de gerenciamento de fluxo de trabalho retorna a aprovação ou rejeição para Cloud Deploy na forma do seguinte comando:
O comando para aprovação é o seguinte:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
O comando para rejeitar o lançamento é o seguinte:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
onde:
ROLLOUT
é o nome do lançamento para o qual a aprovação foi solicitada.
PIPELINE_NAME
é o pipeline de entrega que gerencia a implantação do aplicativo.
RELEASE_NAME
é o nome da versão associada ao lançamento.
REGION
é a região em que o pipeline de entrega está sendo executado.
Veja um exemplo:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1