Skip to main content

GitHub Actions Workflow Generator

Generate complete GitHub Actions CI/CD workflows for Node.js, Python, Go, Rust, and Docker projects. Configure triggers, steps, and deploy targets — get a ready-to-use .github/workflows/ci.yml file instantly.

✓ 5 project types ✓ Lint, test, build, Docker ✓ Vercel / Netlify / Fly.io deploy ✓ Dependency caching included

Frequently Asked Questions

What is GitHub Actions and how does it work?▼

GitHub Actions is GitHub's built-in CI/CD platform. Workflows are defined as YAML files in .github/workflows/ and triggered by events like push, pull_request, or schedule. Each workflow runs on a runner (ubuntu-latest, windows-latest, macos-latest) and consists of jobs, which contain steps — individual commands or reusable actions from the GitHub Marketplace. Workflows run on GitHub's servers at no cost for public repositories (private repos get 2,000 free minutes/month on the free plan).

What is the difference between actions/cache and built-in caching in setup actions?▼

Modern setup actions like actions/setup-node@v4, actions/setup-python@v5, and actions/setup-go@v5 have a built-in cache parameter that automatically caches the relevant package manager's dependencies (node_modules, pip, Go module cache). This is the preferred approach — it handles cache key generation automatically based on lock files. The standalone actions/cache@v4 action gives you more control for custom caching scenarios but requires manual key configuration. For standard setups, always prefer the built-in cache option.

How do I store secrets like API keys in GitHub Actions?▼

Never put secrets in YAML files. Use GitHub repository secrets: go to Settings → Secrets and variables → Actions → New repository secret. Reference them in workflows as $\{\{ secrets.MY_SECRET \}\}. For Docker Hub, create DOCKERHUB_USERNAME and DOCKERHUB_TOKEN secrets. For Vercel, add VERCEL_TOKEN, VERCEL_ORG_ID, and VERCEL_PROJECT_ID. For Fly.io, add FLY_API_TOKEN. The GITHUB_TOKEN secret is automatically available for GitHub Container Registry — no setup needed.

How do I run a workflow only on the main branch (not on PRs)?▼

Use an if condition on the job or step: if: github.ref == 'refs/heads/main'. This is essential for deployment steps — you want tests to run on every PR, but deployments should only happen when code merges to main. For Docker pushes, use push: $\{\{ github.ref == 'refs/heads/main' \}\} in the build-push-action to build on all branches but only push the image when on main. Alternatively, put deploy logic in a separate job that depends on the build job and has the if condition.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →