Entender fluxos de trabalho
Fluxos de trabalho são processos automatizados que você define para criar, testar, empacotar, liberar ou implantar seu projeto. Eles consistem em um ou mais trabalhos executados em resposta a eventos específicos em seu repositório.
Estrutura de fluxo de trabalho
Cada fluxo de trabalho inclui estes componentes principais:
Gatilhos (Eventos)
Definir quando seu fluxo de trabalho deve ser executado – em push, solicitação pull, agendamento ou acionamento manual.
Jobs
Um conjunto de etapas que são executadas no mesmo executor. Os trabalhos são executados em paralelo por padrão, mas podem ser configurados para serem executados sequencialmente.
Steps
Tarefas individuais em um trabalho que podem executar comandos, tarefas de instalação ou usar ações.
Executores
O ambiente de computação em que seus trabalhos são executados – hospedados pelo GitHub ou auto-hospedados.
Localização e nomenclatura do fluxo de trabalho
Os fluxos de trabalho são armazenados como arquivos YAML no .github/workflows diretório do repositório. O nome do arquivo torna-se o identificador de fluxo de trabalho na interface do usuário do GitHub.
Exemplo de fluxo de trabalho moderno
Aqui está um exemplo abrangente usando as práticas recomendadas atuais:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
- cron: "0 2 * * 0" # Weekly dependency check
env:
NODE_VERSION: "20"
jobs:
test:
name: Test and Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Run tests with coverage
run: npm run test:coverage
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
build:
name: Build Application
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-files
path: dist/
Principais melhorias nos fluxos de trabalho modernos
Este exemplo demonstra as práticas recomendadas atuais:
-
Versões de ação mais recentes: usando
@v4versões de ações populares - Cache de dependência: acelera a execução do fluxo de trabalho
- Variáveis de ambiente: gerenciamento de configuração centralizado
-
Dependências de tarefa:
builda tarefa é executada somente após otestêxito - Manipulação de artefatos: Armazenamento e compartilhamento adequados dos resultados de compilação
- Segurança: usando segredos para dados confidenciais, como tokens
Recursos adicionais
Explore esses recursos para aprimorar seu conhecimento de fluxo de trabalho:
- Fluxos de trabalho de inicialização – modelos pré-criados para cenários comuns
- Referência de sintaxe de fluxo de trabalho – Documentação completa da sintaxe
- Ações do Marketplace – ações com contribuição da comunidade