Pular para o conteúdo
🛠️ToolsShed

GitHub Actions Generator

Gere YAML de fluxo de trabalho GitHub Actions para pipelines CI/CD com gatilhos, trabalhos e etapas personalizáveis.

name: CI
on:
  push:
    branches: [main, master]

jobs:
  build:
    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 dependencies
        run: npm ci

      - name: Run tests
        run: npm test

      - name: Build
        run: npm run build

Sobre esta ferramenta

GitHub Actions Generator é uma ferramenta baseada em navegador que ajuda desenvolvedores a criar arquivos de fluxo de trabalho CI/CD sem escrever manualmente a sintaxe YAML. Ao selecionar acionadores, trabalhos e etapas de compilação por meio de uma interface intuitiva, a ferramenta gera automaticamente YAML de fluxo de trabalho pronto para produção que você pode copiar diretamente no diretório .github/workflows do seu repositório.

Para usar esta ferramenta, comece definindo o acionador do fluxo de trabalho (eventos push, pull requests, horários agendados ou disparo manual) e configure os trabalhos e as etapas que cada trabalho deve executar. Você pode adicionar múltiplos trabalhos executados sequencialmente ou em paralelo, especificar variáveis de ambiente e incluir ações comuns como instalar dependências, executar testes, compilar código e fazer deploy em produção. Essa abordagem é ideal para equipes configurando integração contínua pela primeira vez, desenvolvedores que desejam evitar erros de sintaxe YAML, ou qualquer pessoa que prefira um construtor visual de fluxo de trabalho em vez de codificar manualmente arquivos de configuração.

O YAML gerado é totalmente compatível com GitHub Actions e não requer formatação adicional. Cole-o diretamente em seu arquivo de fluxo de trabalho e personalize secrets ou credenciais conforme necessário. Embora esta ferramenta simplifique a criação de fluxo de trabalho, implantações complexas em múltiplos ambientes ou estratégias avançadas de cache ainda podem se beneficiar do ajuste fino manual do resultado gerado.

Perguntas Frequentes

Implementação de Código

import yaml

def generate_github_actions_workflow(
    name: str,
    trigger: str,
    jobs: list[dict]
) -> str:
    workflow = {
        "name": name,
        "on": {},
        "jobs": {}
    }

    if trigger == "push":
        workflow["on"] = {"push": {"branches": ["main"]}}
    elif trigger == "pull_request":
        workflow["on"] = {"pull_request": {"branches": ["main"]}}
    elif trigger == "schedule":
        workflow["on"] = {"schedule": [{"cron": "0 0 * * *"}]}
    else:
        workflow["on"] = {trigger: {}}

    for job in jobs:
        job_id = job["id"]
        workflow["jobs"][job_id] = {
            "runs-on": job.get("runs_on", "ubuntu-latest"),
            "steps": job.get("steps", [])
        }

    return yaml.dump(workflow, default_flow_style=False, sort_keys=False)

# Example: Node.js CI workflow
jobs = [
    {
        "id": "build",
        "runs_on": "ubuntu-latest",
        "steps": [
            {"uses": "actions/checkout@v4"},
            {"name": "Setup Node", "uses": "actions/setup-node@v4",
             "with": {"node-version": "20"}},
            {"name": "Install dependencies", "run": "npm ci"},
            {"name": "Run tests", "run": "npm test"},
        ]
    }
]

yaml_output = generate_github_actions_workflow("CI", "push", jobs)
print(yaml_output)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.