

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos: gatilhos em fluxos de trabalho
<a name="workflows-add-trigger-examples"></a>

Os exemplos a seguir mostram como adicionar diferentes tipos de gatilhos em um arquivo de definição de CodeCatalyst fluxo de trabalho da Amazon.

Para ter mais informações sobre gatilhos, consulte [Início da execução automática de um fluxo de trabalho usando gatilhos](workflows-add-trigger.md).

**Topics**
+ [Exemplo: um simples gatilho de envio de código](#workflows-add-trigger-examples-push-simple)
+ [Exemplo: um gatilho simples “enviar para principal”](#workflows-add-trigger-examples-push-main)
+ [Exemplo: um simples gatilho de solicitação pull](#workflows-add-trigger-examples-pull-simple)
+ [Exemplo: um gatilho de programação simples](#workflows-add-trigger-examples-schedule-simple)
+ [Exemplo: um gatilho com uma programação e ramificações](#workflows-add-trigger-examples-schedule-branches)
+ [Exemplo: um gatilho com uma programação, um envio e ramificações](#workflows-add-trigger-examples-schedule-push-branches)
+ [Exemplo: um gatilho com uma extração e ramificações](#workflows-add-trigger-examples-pull-branches)
+ [Exemplo: um gatilho com uma extração, ramificações e um evento “FECHADO”](#workflows-add-trigger-examples-push-pull-close)
+ [Exemplo: um gatilho com um envio, ramificações e arquivos](#workflows-add-trigger-examples-push-multi)
+ [Exemplo: um gatilho manual](#workflows-add-trigger-examples-manual)
+ [Exemplo: acionadores em uma configuração de vários fluxos de trabalho CI/CD](#workflows-add-trigger-usecases)

## Exemplo: um simples gatilho de envio de código
<a name="workflows-add-trigger-examples-push-simple"></a>

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, 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 um commit para`main`, 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. `main`

Como outro exemplo, se você enviar um commit para`feature-branch-123`, 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. `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”](#workflows-add-trigger-examples-push-main).

## Exemplo: um gatilho simples “enviar para principal”
<a name="workflows-add-trigger-examples-push-main"></a>

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
<a name="workflows-add-trigger-examples-pull-simple"></a>

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, CodeCatalyst inicia a execução de um fluxo de trabalho usando o arquivo de definição do fluxo de trabalho e outros arquivos de origem na ramificação da qual você está *extraindo* (ou seja, a ramificação de origem).

Por exemplo, se você criar uma pull request com uma ramificação de origem chamada `feature-123` e uma ramificação de destino chamada`main`, 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. `feature-123`

```
Triggers:
  - Type: PULLREQUEST
    Events:
      - OPEN
      - REVISION
```

## Exemplo: um gatilho de programação simples
<a name="workflows-add-trigger-examples-schedule-simple"></a>

O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho à meia-noite (UTC\$10) de segunda a sexta.

Quando esse gatilho é ativado, 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``feature-123`, e cada uma dessas ramificações contiver um arquivo de definição de fluxo de trabalho com o gatilho a seguir, 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](workflow-reference.md#workflow.triggers.expression).

## Exemplo: um gatilho com uma programação e ramificações
<a name="workflows-add-trigger-examples-schedule-branches"></a>

O exemplo a seguir mostra um gatilho que inicia uma execução de fluxo de trabalho às 18h15 (UTC\$10) todos os dias.

Quando esse gatilho é ativado, CodeCatalyst inicia a execução de um fluxo de trabalho usando os arquivos na `main` ramificação 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, 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](workflow-reference.md#workflow.triggers.expression).

## Exemplo: um gatilho com uma programação, um envio e ramificações
<a name="workflows-add-trigger-examples-schedule-push-branches"></a>

O exemplo a seguir mostra um gatilho que inicia a execução de um fluxo de trabalho à meia-noite (UTC\$10) 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](workflow-reference.md#workflow.triggers.expression).

## Exemplo: um gatilho com uma extração e ramificações
<a name="workflows-add-trigger-examples-pull-branches"></a>

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”
<a name="workflows-add-trigger-examples-push-pull-close"></a>

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 gatilho `CLOSED` da solicitação pull. A única maneira de ativar o gatilho `CLOSED` 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
<a name="workflows-add-trigger-examples-push-multi"></a>

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, CodeCatalyst inicia a execução de um fluxo de trabalho usando o arquivo de definição do fluxo de trabalho e outros arquivos de origem na `main` ramificação.

```
Triggers:
  - Type: PUSH
    Branches:
      - main
    FilesChanged:
      - filename.txt
      - src\/.*
```

## Exemplo: um gatilho manual
<a name="workflows-add-trigger-examples-manual"></a>

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 escolhendo o botão **Executar** no CodeCatalyst console. Para obter mais informações, consulte [Iniciar um fluxo de trabalho executado manualmente](workflows-manually-start.md).

## Exemplo: acionadores em uma configuração de vários fluxos de trabalho CI/CD
<a name="workflows-add-trigger-usecases"></a>

Este exemplo descreve como configurar gatilhos quando você deseja usar CodeCatalyst fluxos de trabalho separados da Amazon 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 `Triggers` código indica que um fluxo de trabalho deve ser executado automaticamente sempre que um desenvolvedor de software cria uma pull request (ou [modifica uma](pull-requests-update.md)) solicitando a fusão de sua ramificação de recursos com a `main` ramificação. CodeCatalyst inicia a execução do fluxo de trabalho usando o código-fonte na ramificação de origem (que é a ramificação do recurso).

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 `Triggers` código indica que o fluxo de trabalho deve ser iniciado automaticamente quando `main` ocorre uma mesclagem. CodeCatalyst inicia a execução do fluxo de trabalho usando o código-fonte na `main` ramificação.