Exemplos: gatilhos em fluxos de trabalho
Os exemplos a seguir mostram como adicionar diferentes tipos de gatilhos em um arquivo de definição de fluxo de trabalho do Amazon CodeCatalyst.
Para ter mais informações sobre gatilhos, consulte Início da execução automática de um fluxo de trabalho usando gatilhos.
Tópicos
- Exemplo: um simples gatilho de envio de código
- Exemplo: um gatilho simples “enviar para principal”
- Exemplo: um simples gatilho de solicitação pull
- Exemplo: um gatilho de programação simples
- Exemplo: um gatilho com uma programação e ramificações
- Exemplo: um gatilho com uma programação, um envio e ramificações
- Exemplo: um gatilho com uma extração e ramificações
- Exemplo: um gatilho com uma extração, ramificações e um evento “FECHADO”
- Exemplo: um gatilho com um envio, ramificações e arquivos
- Exemplo: um gatilho manual
- Exemplo: gatilhos em uma configuração de vários fluxos de trabalho de CI/CD
Exemplo: um simples gatilho de envio de código
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho sempre que o código é enviado para qualquer ramificação no seu repositório de origem.
Quando esse gatilho é ativado, o CodeCatalyst inicia a execução de um fluxo de trabalho usando os arquivos na ramificação para a qual você está enviando (ou seja, a ramificação de destino).
Por exemplo, se você enviar uma confirmação para main
, o CodeCatalyst iniciará a execução de um fluxo de trabalho usando o arquivo de definição do fluxo de trabalho e outros arquivos de origem ativados em main
.
Outro exemplo, se você enviar uma confirmação para feature-branch-123
, o CodeCatalyst iniciará a execução de um fluxo de trabalho usando o arquivo de definição do fluxo de trabalho e outros arquivos de origem ativados em feature-branch-123
.
Triggers: - Type: PUSH
nota
Se você quiser que a execução de um fluxo de trabalho inicie somente quando enviar para main
, consulte Exemplo: um gatilho simples “enviar para principal”.
Exemplo: um gatilho simples “enviar para principal”
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho sempre que o código é enviado para a ramificação main
– e apenas a ramificação main
– no seu repositório de origem.
Triggers: - Type: PUSH Branches: - main
Exemplo: um simples gatilho de solicitação pull
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho sempre que uma solicitação pull é criada ou revisada no seu repositório de origem.
Quando esse gatilho é ativado, o CodeCatalyst inicia uma execução de fluxo de trabalho usando o arquivo de definição de fluxo de trabalho e outros arquivos de origem na ramificação de onde você está extraindo (ou seja, a ramificação de origem).
Por exemplo, se você criar uma solicitação pull com uma ramificação de origem chamada feature-123
e uma ramificação de destino chamada main
, o CodeCatalyst iniciará a execução de um fluxo de trabalho usando o arquivo de definição do fluxo de trabalho e outros arquivos de origem em feature-123
.
Triggers: - Type: PULLREQUEST Events: - OPEN - REVISION
Exemplo: um gatilho de programação simples
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho à meia-noite (UTC+0) de segunda a sexta.
Quando esse gatilho é ativado, o CodeCatalyst inicia uma única execução de fluxo de trabalho para cada ramificação em seu repositório de origem que contém um arquivo de definição de fluxo de trabalho com esse gatilho.
Por exemplo, se você tiver três ramificações em seu repositório de origem, main
, release-v1
e feature-123
, e cada uma dessas ramificações contiver um arquivo de definição de fluxo de trabalho com o gatilho a seguir, o CodeCatalyst iniciará três execuções de fluxo de trabalho: uma usando os arquivos em main
, outra usando os arquivos em release-v1
e outra usando os arquivos em feature-123
.
Triggers: - Type: SCHEDULE Expression: "0 0 ? * MON-FRI *"
Para ver mais exemplos de expressões cron que podem ser usadas na propriedade Expression
, consulte Expression.
Exemplo: um gatilho com uma programação e ramificações
O exemplo a seguir mostra um gatilho que inicia uma execução de fluxo de trabalho às 18h15 (UTC+0) todos os dias.
Quando esse gatilho é ativado, o CodeCatalyst inicia a execução de um fluxo de trabalho usando os arquivos na ramificação main
e inicia execuções adicionais para cada ramificação que começa com release-
.
Por exemplo, se você tiver ramificações chamadas main
, release-v1
, bugfix-1
e bugfix-2
no seu repositório de origem, o CodeCatalyst iniciará duas execuções de fluxo de trabalho: uma usando os arquivos em main
e outra usando os arquivos em release-v1
. Ele não inicia as execuções do fluxo de trabalho para as ramificações bugfix-1
e bugfix-1
.
Triggers: - Type: SCHEDULE Expression: "15 18 * * ? *" Branches: - main - release\-.*
Para ver mais exemplos de expressões cron que podem ser usadas na propriedade Expression
, consulte Expression.
Exemplo: um gatilho com uma programação, um envio e ramificações
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho à meia-noite (UTC+0) todos os dias e sempre que o código é enviado para a ramificação main
.
Neste exemplo:
-
A execução do fluxo de trabalho começa à meia-noite todos os dias. A execução do fluxo de trabalho usa o arquivo de definição do fluxo de trabalho e outros arquivos de origem na ramificação
main
. -
A execução do fluxo de trabalho também é iniciada sempre que você envia uma confirmação para a ramificação
main
. A execução do fluxo de trabalho usa o arquivo de definição do fluxo de trabalho e outros arquivos de origem na ramificação de destino (main
).
Triggers: - Type: SCHEDULE Expression: "0 0 * * ? *" Branches: - main - Type: PUSH Branches: - main
Para ver mais exemplos de expressões cron que podem ser usadas na propriedade Expression
, consulte Expression.
Exemplo: um gatilho com uma extração e ramificações
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho sempre que alguém abre ou modifica uma solicitação pull com uma ramificação de destino chamada main
. Embora a ramificação especificada na configuração Triggers
seja main
, a execução do fluxo de trabalho usará o arquivo de definição do fluxo de trabalho e outros arquivos de origem na ramificação de origem (que é a ramificação da qual você está extraindo).
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION
Exemplo: um gatilho com uma extração, ramificações e um evento “FECHADO”
O exemplo a seguir mostra um gatilho que inicia uma execução de fluxo de trabalho sempre que uma solicitação pull é fechada em uma ramificação que começa com main
.
Neste exemplo:
-
Quando você fecha uma solicitação pull com uma ramificação de destino que começa com
main
, a execução de um fluxo de trabalho é iniciada automaticamente usando o arquivo de definição do fluxo de trabalho e outros arquivos de origem na ramificação de origem (agora fechada). -
Se você configurou seu repositório de origem para excluir ramificações automaticamente após a mesclagem de uma solicitação pull, essas ramificações nunca terão a chance de entrar no estado
CLOSED
. Isso significa que as ramificações mescladas não ativarão o gatilhoCLOSED
da solicitação pull. A única maneira de ativar o gatilhoCLOSED
nesse cenário é fechar a solicitação pull sem mesclá-la.
Triggers: - Type: PULLREQUEST Branches: - main.* Events: - CLOSED
Exemplo: um gatilho com um envio, ramificações e arquivos
O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho sempre que uma alteração é feita no arquivo filename.txt
, ou em qualquer arquivo no diretório src
, na ramificação main
.
Quando esse gatilho é ativado, o CodeCatalyst inicia uma execução de fluxo de trabalho usando o arquivo de definição de fluxo de trabalho e outros arquivos de origem na ramificação main
.
Triggers: - Type: PUSH Branches: - main FilesChanged: - filename.txt - src\/.*
Exemplo: um gatilho manual
Para configurar um gatilho manual, omita a seção Triggers
do arquivo de definição do fluxo de trabalho. Sem essa seção, os usuários são forçados a iniciar o fluxo de trabalho manualmente selecionando o botão Executar no console do CodeCatalyst. Para ter mais informações, consulte Iniciar um fluxo de trabalho executado manualmente.
Exemplo: gatilhos em uma configuração de vários fluxos de trabalho de CI/CD
Este exemplo descreve como configurar gatilhos quando você deseja usar fluxos de trabalho separados do Amazon CodeCatalyst para integração contínua (CI) e implantação contínua (CD).
Nesse cenário, você configura dois fluxos de trabalho:
-
um fluxo de trabalho de CI: esse fluxo de trabalho cria e testa a aplicação quando uma solicitação pull é criada ou revisada.
-
um fluxo de trabalho de CD: esse fluxo de trabalho compila e implanta a aplicação quando uma solicitação pull é mesclada.
O arquivo de definição do fluxo de trabalho de CI seria semelhante a este:
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION Actions: BuildAction:
instructions-for-building-the-app
TestAction:instructions-for-test-the-app
O código Triggers
indica que um fluxo de trabalho deve ser executado automaticamente sempre que um desenvolvedor de software cria uma solicitação pull (ou modifica uma) solicitando a mesclagem de sua ramificação de recursos com a ramificação main
. O CodeCatalyst inicia a execução do fluxo de trabalho usando o código-fonte na ramificação de origem (que é a ramificação de recursos).
O arquivo de definição do fluxo de trabalho de CD seria semelhante a este:
Triggers: - Type: PUSH Branches: - main Actions: BuildAction:
instructions-for-building-the-app
DeployAction:instructions-for-deploying-the-app
O código Triggers
indica que o fluxo de trabalho deve ser iniciado automaticamente quando ocorre uma mesclagem para main
. O CodeCatalyst inicia a execução do fluxo de trabalho usando o código-fonte na ramificação main
.