Pode integrar o Cloud Deploy com alguns dos outros sistemas nos quais confia para o fornecimento de software. Esta página descreve como integrar o Cloud Deploy com o seguinte:
- Ferramentas de teste
- Gestão de fluxos de trabalho
Consulte o artigo Integração com o seu sistema de CI para saber como chamar o Cloud Deploy a partir do pipeline de CI.
Antes de começar
As instruções nesta página pressupõem que já cumpre as seguintes condições:
Tem, pelo menos, um pipeline de implementação definido e registado no Cloud Deploy.
Tem, pelo menos, um alvo definido, e o seu pipeline de entrega faz referência a esse alvo.
Configurou notificações do Pub/Sub para receber notificações dos seguintes tópicos:
clouddeploy-operations
clouddeploy-approvals
Integração com testes automatizados
Pode usar o Cloud Deploy com o Pub/Sub para integrar os testes no pipeline de entrega, para que possa promover a versão automaticamente para a entrega contínua.
Também pode usar anotações numa implementação para fornecer um link para os resultados dos testes. Para mais informações, consulte o artigo Usar etiquetas e anotações com o Cloud Deploy.
Usar o Pub/Sub para automatizar a promoção
Ouvir mensagens 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 receber uma notificação de que a implementação foi bem-sucedida, execute os testes na aplicação implementada.
Quando os testes são bem-sucedidos, chame o Cloud Deploy para promover automaticamente para a fase seguinte:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
where:
RELEASE_NAME
é o nome do lançamento. Este valor é obrigatório.
PIPELINE_NAME
é o nome do pipeline de fornecimento que gere esta versão. Este valor é obrigatório.
REGION
é a região na qual o pipeline está a ser executado. Se tiver definido a propriedade
deploy/region
, pode omitir esta flag.KEY=VALUE,...
é uma lista de um ou mais pares de strings de chave-valor, separados por vírgulas, que podem conter informações sobre os resultados dos testes e outras informações de testes. Segue-se um exemplo:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
As anotações na implementação são imutáveis. Por isso, se adicionar uma anotação de estado, não pode atualizar posteriormente esse estado na mesma implementação.
Usar anotações para fornecer acesso aos resultados dos testes
Se tiver o URL que indica onde é possível aceder aos resultados dos testes, pode
fornecer esse URL como uma anotação numa implementação, usando a flag --annotations
.
Segue-se 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 o artigo Usar etiquetas e anotações com o Cloud Deploy.
Integração com a gestão de fluxo de trabalho de terceiros
O Cloud Deploy publica mensagens operacionais no Pub/Sub. A sua ferramenta de gestão de fluxos de trabalho pode subscrever estes tópicos do Pub/Sub e usá-los para acionar fluxos de trabalho específicos.
Para aprovações
O tópico clouddeploy-approvals
notifica o seu sistema quando é necessária uma aprovação para uma implementação. O seu sistema de fluxo de trabalho externo pode, então, fazer a sua magia para obter a aprovação e, em seguida, chamar gcloud deploy rollouts approve
.
A conta que emite o comando rollouts approve
tem de ter a função do IAM predefinida roles/clouddeploy.approver
.
Para configurar um fluxo de trabalho de aprovação externo:
-
Na definição desse alvo, inclua
requireApproval: true
. Para consumir as mensagens, subscreva o
clouddeploy-approvals
tópico Pub/Sub e configure o seu sistema de gestão do fluxo de trabalho.Quando o seu sistema de gestão do fluxo de trabalho recebe uma mensagem do tópico
clouddeploy-approvals
que inclui"Action": "Required"
, 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 à implementação a ser aprovada, no seguinte formato:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
O resultado do fluxo de trabalho de aprovação é uma aprovação ou uma rejeição da implementação.
O sistema de gestão do fluxo de trabalho devolve a aprovação ou a rejeição ao Cloud Deploy no formato 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 a implementação é o seguinte:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
where:
ROLLOUT
é o nome da implementação para a qual foi pedida aprovação.
PIPELINE_NAME
é o pipeline de entrega que gere a implementação da sua aplicação.
RELEASE_NAME
É o nome do lançamento ao qual esta implementação está associada.
REGION
é a região na qual o pipeline de envio está em execução.
Segue-se um exemplo:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1