Como usar regras de automação

Neste documento, descrevemos as regras de automação, que são ações que podem ser realizadas automaticamente no pipeline de entrega. Por exemplo, é possível configurar o pipeline de entrega para que a promoção para um destino específico aconteça automaticamente, nas circunstâncias certas.

Só é possível usar regras de automação integradas ao Cloud Deploy. Confira neste documento as regras de automação disponíveis.

Regras de automação disponíveis

As seguintes regras de automação estão disponíveis no Cloud Deploy:

Regra Descrição
promoteReleaseRule Promove automaticamente uma versão no destino indicado após a conclusão

no destino anterior da progressão.

advanceRolloutRule Avance automaticamente um lançamento a partir do indicado

fase para a próxima.

Como configurar regras de automação

A configuração de cada regra de automação depende da regra específica. Esta seção descreve a configuração que todas as regras têm em comum e como definir cada uma das regras disponíveis.

As seções a seguir descrevem a configuração específica para regras de automação individuais. Consulte Automatizar a implantação para configurar a automação em si.

Como configurar uma regra de automação promoteReleaseRule

A regra promoteReleaseRule promove a versão após um lançamento bem-sucedido em um destino. Por exemplo, se você tiver três destinos, será possível configurar essa regra para que, quando a versão for implantada com sucesso no primeiro destino, ela seja promovida automaticamente para o segundo destino.

Ao configurar uma automação promoteReleaseRule, você pode especificar um destino a ser promovido para (destinationTargetId) ou @next. Quando o lançamento é concluído com sucesso no destino especificado na definição Automation, a versão é promovida para o destino especificado em destinationTargetId, sujeito a um intervalo de tempo wait.

Também é possível promover uma versão para uma fase específica no destino pretendido usando a propriedade destinationPhase.

rules:
- promoteReleaseRule:
    name: "[RULE_NAME]"
    wait: [WAIT_TIME]
    destinationTargetId: "[TO_TARGET]"
    destinationPhase: "[TO_PHASE]"

Em que:

  • [RULE_NAME]

    É o nome que você quer dar a esta regra. Esse nome precisa ser exclusivo no recurso de automação.

  • [WAIT_TIME]

    É a quantidade de tempo, em minutos, de espera após o lançamento estar pronto para promoção antes de ser promovido. Por exemplo, 1m O m é obrigatório.

    O valor padrão é 0 ou nenhum tempo de espera. O máximo é 20160m (ou 14 dias).

  • [TO_TARGET]

    É o targetId do destino a ser promovido.

    Também pode ser @next, que promove a versão automaticamente para o próximo destino após o destino especificado na propriedade selector.targets nesta configuração de automação. Esse será o padrão se você omitir o valor de destinationTargetId.

  • [TO_PHASE]

    É o nome da fase que você quer promover, por exemplo, canary-25 ou stable. Essa propriedade é opcional. Se for omitida, a versão será promovida para a primeira fase no destino.

Como configurar uma regra de automação advanceRolloutRule

O advanceRolloutRule avança o lançamento automaticamente para a próxima após a conclusão bem-sucedida de uma fase. Essa regra de automação é útil para implantações canário. Por exemplo, se você tiver uma estratégia de implantação canário configurada em um destino, com fases de 25%, 50% e stable, será possível configurar uma regra de automação que avança a fase automaticamente para stable após o término da fase 50%.

Ao configurar uma automação advanceRolloutRule, você identifica a fase para avançar a partir (o sourcePhase).

rules:
- advanceRolloutRule:
    id: "[RULE]"
    sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
    wait: [WAIT_TIME]

Em que:

  • [RULE]

    É o nome que você quer dar a esta regra. Esse nome precisa ser exclusivo no pipeline de entrega.

  • [WAIT_TIME]

    É a quantidade de tempo, em minutos, de espera para avançar o lançamento após ele estar pronto. Por exemplo, 1m O m é obrigatório.

    O valor padrão é 0 ou nenhum tempo de espera. O máximo é 20160m (ou 14 dias).

  • ["[START_PHASE]", "[START_PHASE]"...]

    É a fase ou fases a partir da qual o lançamento é avançado automaticamente. Ou seja, quando qualquer uma das fases listadas for concluída com êxito, o lançamento será avançado automaticamente dessa fase para a próxima.

    Os nomes das fases diferenciam maiúsculas de minúsculas. Além disso, esses nomes de fase são opcionais. Se você omitir sourcePhases, todas as fases no lançamento serão avançadas automaticamente.

A seguir