Tutorial Básico de GitHub Actions
Aprenda a automatizar seus workflows de CI/CD com GitHub Actions. Um guia prático e direto para começar a usar a plataforma de automação do GitHub.
O que é GitHub Actions?
GitHub Actions é uma plataforma de integração contínua e entrega contínua (CI/CD) que permite automatizar seu pipeline de build, teste e deploy. Você pode criar workflows que executam tarefas automaticamente quando eventos específicos acontecem no seu repositório.
Automação
Execute tarefas automaticamente em resposta a eventos
Integração
Integrado diretamente ao seu repositório GitHub
Estrutura Básica
Os workflows do GitHub Actions são definidos em arquivos YAML localizados no diretório .github/workflows/ do seu repositório.
name: CI Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testComponentes Principais
Entenda os componentes essenciais que formam um workflow:
Workflow
Processo automatizado configurável que executa um ou mais jobs.
Event (on:)
Atividade específica que dispara o workflow, como push, pull_request, schedule.
Job
Conjunto de steps que executam no mesmo runner. Jobs podem rodar em paralelo.
Step
Tarefa individual que pode executar comandos ou actions.
Action
Aplicação reutilizável que executa uma tarefa complexa.
Eventos Comuns
Os eventos determinam quando seu workflow será executado. Aqui estão os mais utilizados:
# Executar em push para main
on:
push:
branches: [ main ]
# Executar em pull requests
on:
pull_request:
types: [ opened, synchronize ]
# Executar em schedule (cron)
on:
schedule:
- cron: '0 9 * * 1' # Segunda às 9h
# Executar manualmente
on:
workflow_dispatch:
inputs:
environment:
description: 'Ambiente de deploy'
required: true
default: 'staging'Exemplo Prático: Deploy Automático
Veja um exemplo completo de workflow que faz build e deploy de uma aplicação Next.js na Vercel:
name: Deploy to Vercel
on:
push:
branches: [ main ]
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install Vercel CLI
run: npm install -g vercel
- name: Pull Vercel Environment
run: vercel pull --yes --token=${{ secrets.VERCEL_TOKEN }}
- name: Build Project
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
- name: Deploy to Vercel
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}Próximos Passos
Agora que você conhece os fundamentos, explore mais recursos: