GitHub Actions
GitHub Actions Automation & DevOps CI/CD

Gerador de Fluxos de Trabalho YAML para GitHub Actions CI/CD

Crie pipelines YAML de fluxo de trabalho do GitHub Actions prontos para produção para Node.js, Go, Python, builds Docker, testes automatizados e releases contínuas.

100% No Cliente
Zero transmissão ao servidor
Predefinições:
Disparadores e Branches
Gatilhos Ativos:
Ambiente e Matriz
Etapas de Build, Teste e Cache
Segurança, Segredos e Concorrência
.github/workflows/nodejs-ci.yml Sintaxe Verificada (v4)
name: Node.js CI/CD Pipeline

on:
  push:
    branches:
      - 'main'
      - 'master'
  pull_request:
    branches:
      - 'main'
      - 'master'
  workflow_dispatch:
  release:
    types: [published]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: write

jobs:
  build-and-test:
    name: NODE Test & Build
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      fail-fast: false
      matrix:
        node-version: ['18.x', '20.x', '22.x']
    steps:
      - name: Checkout code repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Install pnpm package manager
        uses: pnpm/action-setup@v4
        with:
          version: 'latest'

      - name: Set up Node.js runtime environment
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'pnpm'

      - name: Install project dependencies
        run: pnpm install --frozen-lockfile

      - name: Run code linter and style check
        run: pnpm run lint

      - name: Run static typecheck
        run: pnpm run typecheck

      - name: Run automated test suite
        run: pnpm test -- --coverage

      - name: Compile and build production bundle
        run: pnpm run build

      - name: Upload build artifact
        uses: actions/upload-artifact@v4
        with:
          name: node-js-ci-cd-pipeline-artifact
          path: dist/
          retention-days: 7

      - name: Create GitHub Release on tag
        if: startsWith(github.ref, 'refs/tags/')
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true
          files: dist/**
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Ambiente Alvo
NODE • ubuntu
Etapas da Pipeline
9 Passos • ~5.2m execução
Pontuação de Segurança
100/100 • Mínimo Privilégio

Compilação Local sem Latência

Gera fluxos de trabalho robustos do GitHub Actions na memória do navegador sem enviar arquiteturas de código para servidores externos.

Endurecimento de Segurança Corporativo

Aplica privilégios mínimos de token, cancelamento de execuções concorrentes, timeouts e fixação de versões contra ataques à cadeia de suprimentos.

Suporte Multi-Linguagem e Estratégia de Matriz

Modelos ajustados para Node.js, Python, Go, Rust, Docker e GitHub Pages com cache inteligente de gerenciadores de pacotes.

Referência técnica e guia de arquitetura

Guia do desenvolvedor para gerador de YAML do GitHub Actions CI/CD — Guia de referência

Crie pipelines YAML de fluxo de trabalho do GitHub Actions prontos para produção para Node.js, Go, Python, builds Docker, testes automatizados e releases contínuas.

Parâmetros principais e controles

namestring

Identificador do fluxo de trabalho exibido na interface do GitHub Actions, badges de status e verificações de PR.

Padrão: CI / CD Pipeline
onstring | object

Define eventos de webhook disparadores da pipeline: push, pull_request, agendamento cron ou workflow_dispatch manual.

Padrão: push, pull_request
runs-onstring | array

Especifica o sistema operacional do executor virtual (ubuntu-latest, macos-latest, windows-latest) ou rótulos de executores auto-hospedados.

Padrão: ubuntu-latest
permissionsobject | string

Configura permissões de menor privilégio concedidas ao GITHUB_TOKEN efêmero (ex.: contents: read, packages: write).

Padrão: contents: read
concurrencyobject | string

Evita execuções simultâneas duplicadas no mesmo branch ou PR; cancel-in-progress aborta compilações obsoletas para economizar minutos.

Padrão: group: ${{ github.ref }}, cancel-in-progress: true

Dicas profissionais e melhores práticas

Referencie ações utilizando o SHA de

Referencie ações utilizando o SHA de commit completo de 40 caracteres em vez de tags mutáveis de versão (ex.: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1) para evitar ataques na cadeia de suprimentos.

Configure grupos de concorrência com

Configure grupos de concorrência com 'cancel-in-progress: true' para interromper automaticamente testes de commits anteriores quando novos commits forem enviados.

Defina 'permissions

Defina 'permissions: {}' no nível raiz para negar todo acesso por padrão e declare explicitamente apenas as permissões necessárias dentro de cada job individual.

Utilize opções integradas de cache

Utilize opções integradas de cache como 'cache: npm' em actions/setup-node ou 'cache: pip' em actions/setup-python em vez de criar regras manuais de cache.

Problemas comuns e solução de problemas

Processo encerrado com exit code 1 devido a segredos ausentes ou variáveis vazias

Verifique os segredos em Settings > Secrets and variables > Actions. Por padrão, pull requests originados de forks não herdam segredos do repositório de destino.

Erro HTTP 403 (Resource not accessible by integration) ao publicar pacotes ou releases

Adicione permissões explícitas de escrita no job: 'permissions: { contents: write, packages: write }'. Em repositórios modernos, o GITHUB_TOKEN é estritamente somente leitura por padrão.

O fluxo de trabalho não dispara em agendamentos cron nem em tags de release

Certifique-se de que o arquivo YAML esteja presente na branch principal (main ou master). O GitHub Actions só avalia disparadores cron a partir do branch padrão.

Perguntas frequentes (FAQ)

Qual é a diferença fundamental entre jobs e steps no GitHub Actions?▼

Um job roda em um ambiente virtual isolado e é executado em paralelo por padrão (a menos que encadeado com 'needs'). Steps rodam em sequência dentro do mesmo job, compartilhando o sistema de arquivos local e variáveis de ambiente.

Por que fixar ações por SHA de commit é essencial para a segurança?▼

Tags como @v4 são referências mutáveis no Git. Se a conta do mantenedor for comprometida, código malicioso pode ser publicado na mesma tag. O SHA garante execução determinística e imutável do código verificado.

Como funciona o workflow_dispatch para execuções manuais parametrizadas?▼

Ao incluir 'workflow_dispatch:' no gatilho 'on:', o GitHub exibe o botão 'Run workflow'. É possível definir entradas interativas (campos de texto, booleanos e listas de opções) acessíveis via '${{ inputs.nome_do_parametro }}'.

Como otimizar o tempo de compilação e economizar minutos cobrados de runners?▼

Combine caching de dependências, matrizes de build com cancelamento rápido, controle de concorrência com cancel-in-progress e filtros de caminhos (paths / paths-ignore) para rodar o CI somente em mudanças pertinentes.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Gerador de Configuração do Linux Logrotate (Retenção e Compactação)Desenvolvimento

Gere arquivos de configuração para /etc/logrotate.d/ prontos para produção com rotação diária/semanal, compactação gzip, dateext, limites de tamanho e scripts postrotate.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Configuração YAML do Ubuntu NetplanDesenvolvimento

Gere configurações YAML do Netplan para Ubuntu 20.04/22.04/24.04: IPs estáticos, DHCP, servidores DNS, rotas de gateway, bridges e bonds.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Modelos Python SQLAlchemy 2.0 a partir de SQL DDLDesenvolvimento

Converta instruções SQL CREATE TABLE em modelos fortemente tipados do Python SQLAlchemy 2.0 DeclarativeBase com anotações modernas Mapped e mapped_column.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Modelos Struct GORM em Golang a partir de DDL SQLDesenvolvimento

Converta esquemas SQL CREATE TABLE em definições de struct em Golang com tags GORM, tags JSON e correspondência tipada de tipos Go.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Modelos Sequelize TypeScript a partir de SQL DDLDesenvolvimento

Referência técnica completa para converter instruções SQL CREATE TABLE DDL em modelos Sequelize TypeScript fortemente tipados, definições DataTypes, atributos CreationOptional e chamadas Model.init.

Abrir ferramenta→
Json To Elixir Ecto Referência para DesenvolvedoresDesenvolvimento

Guia técnico e de configuração arquitetural para compilar payloads JSON brutos em esquemas Elixir Ecto de produção, migrações, changesets e typespecs do Dialyzer.

Abrir ferramenta→