Automação de Workflows

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.

Introdução

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

Passo 1

Estrutura Básica

Os workflows do GitHub Actions são definidos em arquivos YAML localizados no diretório .github/workflows/ do seu repositório.

.github/workflows/ci.yml
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 test
Passo 2

Componentes 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.

Passo 3

Eventos Comuns

Os eventos determinam quando seu workflow será executado. Aqui estão os mais utilizados:

Exemplos de eventos
# 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'
Passo 4

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:

.github/workflows/deploy.yml
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 }}
Continue

Próximos Passos