https://docs.github.com/pt/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows

Em projetos com diversas branches para diferentes áreas de desenvolvimento, nem sempre é necessário executar um workflow em todo push, especialmente na main, por exemplo.

Além disso, em eventos como pull_request, pode ser importante ter mais controle:

Queremos rodar o workflow quando o pull request é aberto? Quando é sincronizado? Ou apenas quando é aceito (merge)?

Para isso, o GitHub Actions permite configurar filtros e tipos de atividades para cada evento.

Activity Types

image.png

Evento: Pull Request

Todo evento tem seu funcionamento padrão caso não defina o tipo de atividade.

No caso de pull_request, se não especificarmos nada, o workflow será disparado automaticamente quando o pull request for:

Se quiser acionar o workflow em outras situações, como quando o PR é fechado ou mesclado, é necessário definir explicitamente.

name: Events Demo 1
on:  
	pull_request:                        #define que o workflow devera ser ativado se o pull request for aberto ou editado
		types: [opened, edited]  
	workflow_dispatch:                   #define a possibilidade de ativar manualmente. Mesmo que não tenha tipos, é preciso colocar os ":" pois o anterior foi definido
jobs:  
	deploy:    
		runs-on: ubuntu-latest    
		steps:      
			- name: Output event data        
				run: echo "${{ toJSON(github.event) }}"      
			- name: Get code        
				uses: actions/checkout@v3      
			- name: Install dependencies        
				run: npm ci      
			- name: Test code        
				run: npm run test      
			- name: Build code        
				run: npm run build      
			- name: Deploy project        
				run: echo "Deploying..."

Event Filters

https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet