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á.
Automatizar a inicialização de pipelines usando gatilhos e filtragem
Os gatilhos permitem configurar o pipeline para iniciar em um determinado tipo de evento ou tipo de evento filtrado, como quando uma alteração em uma ramificação específica ou solicitação pull é detectada. Os acionadores são configuráveis para ações de origem com conexões que usam a CodeStarSourceConnection
ação em CodePipeline GitHub, como Bitbucket e. GitLab Para ter mais informações sobre ações de origem que usam conexões, consulte Adicione provedores de origem terceirizados aos pipelines usando CodeConnections.
As ações de origem, como CodeCommit e S3, usam a detecção automática de alterações para iniciar os pipelines quando uma alteração é feita. Para obter mais informações, consulte CodeCommit ações de origem e EventBridge.
Você especifica gatilhos usando o console ou a CLI.
Você especifica os tipos de filtro da seguinte forma:
-
Sem filtro
Esta configuração de gatilho inicia o pipeline em qualquer envio para a ramificação padrão especificada como parte da configuração da ação.
-
Especificar filtro
Adicione um filtro que inicia o pipeline em um filtro específico, como em nomes de ramificações para um push de código, e busca a confirmação exata. Isso também configura o pipeline para não iniciar automaticamente em nenhuma alteração.
-
Push
-
As combinações de filtros válidas são:
-
Etiquetas Git
Incluir ou excluir
-
filiais
Incluir ou excluir
-
ramificações + caminhos de arquivo
Incluir ou excluir
-
-
-
Solicitação pull
-
As combinações de filtros válidas são:
-
filiais
Incluir ou excluir
-
ramificações + caminhos de arquivo
Incluir ou excluir
-
-
-
-
Não detecte alterações
Isso não adiciona um gatilho, e o pipeline não inicia automaticamente em nenhuma alteração.
A tabela a seguir fornece opções de filtro válidas para cada tipo de evento. A tabela também mostra quais configurações de gatilho são padronizadas como verdadeiras ou falsas para detecção automática de alterações na configuração da ação.
Configurações do gatilho | Tipo de evento | Opções de filtro | Detectar alterações |
---|---|---|---|
Adicionar um gatilho: sem filtro | nenhuma | nenhuma | true |
Adicionar um gatilho: filtro no envio de código | evento push | Etiquetas Git, ramificações, caminhos de arquivo | false |
Adicionar um gatilho: filtro para solicitações pull | solicitações pull | ramificações, caminhos de arquivo | false |
Sem gatilho: não detectar | nenhuma | nenhuma | false |
nota
Este tipo de gatilho usa detecção automatizada de alterações (como o tipo de gatilho Webhook
). Os provedores de ação de origem que usam esse tipo de gatilho são conexões configuradas para envio de código (Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com e GitLab autogerenciadas).
Para obter definições de campo e referências adicionais sobre gatilhos, consulte
Para conferir uma lista de definições de campo na estrutura JSON, consulte triggers.
Para filtragem, padrões de expressão regular no formato glob são compatíveis conforme detalhado em Trabalhar com padrões glob na sintaxe.
nota
Em certos casos, para pipelines com gatilhos filtrados por caminhos de arquivos, o pipeline pode não iniciar quando uma ramificação com um filtro de caminho de arquivo é criada pela primeira vez. Para obter mais informações, consulte Pipelines configurados com conexões que filtram gatilhos por caminhos de arquivos podem falhar ao iniciar durante a criação da ramificação..
Considerações sobre filtros de gatilho
As seguintes considerações se aplicam ao usar gatilhos.
-
Você não pode adicionar mais de um gatilho por ação de origem.
-
Você pode adicionar vários tipos de filtro a um gatilho. Para obter um exemplo, consulte 4: Um gatilho com dois tipos de filtro de pressão com inclusões e exclusões conflitantes .
-
Em gatilhos com filtros de ramificação e caminhos de arquivos, ao enviar a ramificação pela primeira vez, o pipeline não será acionado devido à indisponibilidade da lista de arquivos alterados na nova ramificação.
-
A mesclagem de uma pull request pode acionar duas execuções de pipeline nos casos em que as configurações de gatilho push (filtro de ramificações) e pull request (filtro de ramificações) se cruzam.
-
Para um filtro que aciona seu pipeline em eventos de pull request, para o tipo de evento de pull request fechado, o provedor de repositório terceirizado da sua conexão pode ter um status separado para um evento de mesclagem. Por exemplo, no Bitbucket, o evento Git para uma mesclagem não é um evento de encerramento de pull request. No entanto, em GitHub, mesclar uma pull request é um evento de encerramento. Para obter mais informações, consulte Eventos de pull request para gatilhos por provedor.
Eventos de pull request para gatilhos por provedor
A tabela a seguir fornece um resumo dos eventos do Git, como o encerramento de pull request, que resultam em tipos de eventos de pull request por provedor.
Provedor de repositório para sua conexão | ||||
---|---|---|---|---|
Evento de relações públicas para gatilho | Bitbucket | GitHub | GHES | GitLab |
Abrir - Essa opção aciona o pipeline quando uma pull request é criada para o caminho da ramificação/arquivo. | A criação de uma pull request resulta em um evento Git aberto. | A criação de uma pull request resulta em um evento Git aberto. | A criação de uma pull request resulta em um evento Git aberto. | A criação de uma pull request resulta em um evento Git aberto. |
Atualizar - Essa opção aciona o pipeline quando uma revisão de pull request é publicada para o caminho da ramificação/arquivo. | A publicação de uma atualização resulta em um evento Git atualizado. | A publicação de uma atualização resulta em um evento Git atualizado. | A publicação de uma atualização resulta em um evento Git atualizado. | A publicação de uma atualização resulta em um evento Git atualizado. |
Fechado - Essa opção aciona o pipeline quando uma pull request é fechada para o caminho da ramificação/arquivo. | A mesclagem de uma pull request no Bitbucket resulta em um evento Git fechado. Importante: fechar manualmente uma pull request no Bitbucket sem mesclar não resulta em um evento Git fechado. | Mesclar ou fechar manualmente uma pull request resulta em um evento Git fechado. | Mesclar ou fechar manualmente uma pull request resulta em um evento Git fechado. | Mesclar ou fechar manualmente uma pull request resulta em um evento Git fechado. |
Exemplos de filtros de gatilho
Para uma configuração do Git com filtros para os tipos de eventos push e solicitação pull, os filtros especificados podem entrar em conflito entre si. Veja a seguir exemplos de combinações de filtros válidas para eventos push e solicitação pull. Um gatilho pode conter vários tipos de filtro, como dois tipos de filtro push na configuração do gatilho, e os tipos de filtro push e pull request usarão uma operação OR entre eles, o que significa que qualquer correspondência iniciará o pipeline. Da mesma forma, cada tipo de filtro pode incluir vários filtros, como filePaths e branches; esses filtros usarão uma operação AND, o que significa que somente uma correspondência completa iniciará o pipeline. Cada tipo de filtro pode conter inclusões e exclusões, e elas usarão uma operação AND entre elas, o que significa que somente uma correspondência completa iniciará o pipeline. Os nomes dentro da inclusão/exclusão, como nomes de ramificações, usam uma operação OR. Se houver um conflito, como entre dois filtros push, como quando um inclui a main
ramificação e o outro a exclui, o padrão é excluir. A lista a seguir resume as operações de cada parte do objeto de configuração do Git.
Para obter uma lista de definições de campo na estrutura JSON e uma referência detalhada sobre inclusões e exclusões, consulte. triggers
exemplo 1: Um tipo de filtro com filtros para ramificações e caminhos de arquivo (operação AND)
Para um único tipo de filtro, como pull request, você pode combinar filtros, e esses filtros usarão uma operação AND, o que significa que somente uma correspondência completa iniciará o pipeline. O exemplo a seguir mostra uma configuração do Git para um tipo de evento push com dois filtros diferentes (filePaths
ebranches
). No exemplo a seguir, filePaths
será usado com o operador E e com branches
:
{ "filePaths": { "includes": ["common/**/*.js"] }, "branches": { "includes": ["feature/**"] } }
Com a configuração do Git acima, este exemplo mostra um evento que iniciará a execução do pipeline porque o uso do operador E foi bem-sucedido. Em outras palavras, o caminho do arquivo common/app.js
é incluído para o filtro, que inicia o pipeline como AND mesmo que a ramificação refs/heads/feature/triggers
especificada não tenha tido impacto.
{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "common/app.js" ] ... } ] }
O exemplo a seguir mostra um evento para um acionador com a configuração acima que não iniciará a execução do pipeline porque a ramificação é capaz de filtrar, mas o caminho do arquivo não.
{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "src/Main.java" ] ... } ] }
exemplo 2: Inclui e exclui o uso de uma operação AND entre eles
Filtros de gatilho, como ramificação em um único tipo de evento de pull request, usam uma operação AND entre as inclusões e as exclusões. Isso permite que você configure vários gatilhos para iniciar a execução no mesmo pipeline. O exemplo a seguir mostra uma configuração de gatilho com um único tipo de filtro (branches
) no objeto de configuração para um evento push. As Excludes
operações Includes
e serão And'ed, o que significa que, se uma ramificação corresponder a um padrão de exclusão (como feature-branch
no exemplo), o pipeline não será acionado, a menos que uma inclusão também corresponda. Se o padrão de inclusão corresponder, como no caso da ramificação main
, o pipeline será acionado.
Para o exemplo a seguir, JSON:
-
Enviar um commit para a
main
filial acionará o pipeline -
Enviar uma confirmação para a
feature-branch
filial não acionará o pipeline.
{ "branches": { "Includes": [ "main" ], "Excludes": [ "feature-branch" ] }
exemplo 3: Um gatilho com tipos de filtro push e pull request (operação OR), filtros para caminhos e ramificações de arquivos (operação AND) e incluições/exclusões (operação AND)
Os objetos de configuração do gatilho, como um acionador que contém um tipo de evento push e um tipo de evento pull request, usam uma operação OR entre os dois tipos de eventos. O exemplo a seguir mostra uma configuração de gatilho com um tipo de evento push com a main
ramificação incluída e um tipo de evento de pull request com a mesma ramificação main
excluída. Além disso, o tipo de evento push tem um caminho de arquivo LICENSE.txt
excluído e um caminho de arquivo README.MD
incluído. Para o segundo tipo de evento, uma pull request que está na ramificação Closed
ou Created
na feature-branch
ramificação (incluída) inicia o pipeline, e o pipeline não inicia ao criar ou fechar uma pull request na ramificação feature-branch-2
ou nas main
ramificações (excluídas). As Excludes
operações Includes
e serão AND, com um conflito assumindo como padrão a exclusão. Por exemplo, para um evento de pull request na feature-branch
ramificação (incluído na pull request) enquanto a feature-branch
ramificação é excluída para o tipo de evento push, então o padrão será excluir.
Para o exemplo a seguir,
-
Enviar uma confirmação para a
main
ramificação (incluída) do caminho doREADME.MD
arquivo (incluído) acionará o pipeline. -
Na
feature-branch
ramificação (excluída), enviar um commit não acionará o pipeline. -
Na ramificação incluída, a edição do caminho do
README.MD
arquivo (incluído) aciona o pipeline. -
Na ramificação incluída, a edição do caminho do
LICENSE.TXT
arquivo (excluído) não aciona o pipeline. -
Na
feature-branch
ramificação, fechar uma solicitação pull para o caminho doREADME.MD
arquivo (incluído para o evento push) não acionará o pipeline porque o tipo de evento push especifica afeature-branch
ramificação como excluída e, portanto, o conflito assume como padrão a exclusão.
A imagem a seguir mostra a configuração.

Veja a seguir um exemplo de JSON para a configuração.
"triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "branches": { "includes": [ "main" ], "excludes": [ "feature-branch", "feature-branch-2" ] }, "filePaths": { "includes": [ "README.md" ], "excludes": [ "LICENSE.txt" ] } } ], "pullRequest": [ { "events": [ "CLOSED", "OPEN" ], "branches": { "includes": [ "feature-branch" ], "excludes": [ "feature-branch-2", "main" ] } } ] } } ] },
exemplo 4: Um gatilho com dois tipos de filtro de pressão com inclusões e exclusões conflitantes
A imagem a seguir mostra um tipo de filtro push especificando o filtro na tag release-1
(incluído). Um segundo tipo de filtro de pressão é adicionado especificando filtrar na ramificação main
(incluído) e não iniciar o envio para as feature*
ramificações (excluído).
Para o seguinte exemplo:
-
Pressionar uma liberação da tag
release-1
(incluída para o primeiro filtro push) nafeature-branch
ramificação (excluída comofeature*
para o segundo filtro push) não acionará o pipeline porque os dois tipos de eventos serão AND. -
Empurrar uma liberação da
main
ramificação (incluída no segundo filtro Push) iniciará a tubulação.
O exemplo a seguir da página Editar mostra os dois tipos de filtros push e suas configurações para inclusões e exclusões.

Veja a seguir um exemplo de JSON para a configuração.
"triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "tags": { "includes": [ "release-1" ] } }, { "branches": { "includes": [ "main*" ], "excludes": [ "feature*" ] } } ] } } ] },
exemplo 5: Acionador configurado enquanto a configuração de ação padrão BranchName é usada para uma inicialização manual
O BranchName
campo padrão de configuração da ação define uma única ramificação que será usada quando o pipeline for iniciado manualmente, enquanto acionadores com filtros podem ser usados para qualquer ramificação ou ramificações que você especificar.
Veja a seguir um exemplo de JSON para a configuração da ação que mostra o BranchName
campo.
{ "name": "Source", "actions": [ { "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeStarSourceConnection", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "ConnectionArn": "ARN", "DetectChanges": "false", "FullRepositoryId": "
owner-name
/my-bitbucket-repo", "OutputArtifactFormat": "CODE_ZIP" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" } ],
O exemplo de saída de ação a seguir mostra que a ramificação principal padrão foi usada quando o pipeline foi iniciado manualmente.

O exemplo de saída de ação a seguir mostra a pull request e a ramificação que foram usadas para o gatilho quando filtradas por pull request.
