GitHub Actions Workflow Generator
Generate a starter CI workflow for Node.js, Python, or Go, runs entirely in your browser.
About this tool
Pick a stack, the branches that should trigger it, and an optional test command, and get back a complete .github/workflows/ci.yml: checkout, the stack’s official setup action with dependency caching where one exists, dependency installation, and your test command, triggered on both push and pull_request against the branches you list.
The Node.js option emits actions/setup-node@v4 and explicitly enables its npm cache with cache: npm; Python uses actions/setup-python; Go uses actions/setup-go, which caches Go modules and build output by default (v4+). All three pin a specific major version of the action itself, matching current GitHub-recommended practice for reproducible workflow behavior over time.
This produces a reasonable starting workflow for a new repository, not a full pipeline: it has one job and no build matrix, artifact upload, or deployment step. Extend it once the basic CI is passing.
Frequently asked questions
- Why are both push and pull_request triggers included?
- push runs CI on direct commits to the listed branches (e.g. after a merge), while pull_request runs it on every pull request targeting those branches, including from forks, so a PR is checked before it is merged, not only after. Most repositories want both.
- Why does the Go option not specify a cache option like Node.js and Python do?
- actions/setup-go (v4 and later) caches Go modules and build output by default, no configuration needed. Pass "cache: false" to that step if you want to disable it. This generator emits actions/setup-node@v4 with "cache: npm" explicitly enabled; caching behavior outside the generated workflow depends on the setup action and version in use.
- Can I use this for a monorepo or multiple jobs?
- This generates a single job with one test step, meant as a starting point. A monorepo with independent packages, or a workflow that needs a build matrix across multiple versions, will need to extend the generated YAML by hand.
- Is anything I enter sent anywhere?
- No. The workflow file is assembled entirely in your browser, no network request is made.
Continue learning
- DocumentationBash FundamentalsBash scripting from variables to functions, plus the quoting and exit-status habits that separate a script that looks right from one that fails safely.
- BlogTerraform Troubleshooting Guide: Fix the Errors Engineers Actually HitDiagnose Terraform initialization, validation, provider, authentication, state, drift, import, replacement, timeout, and CI failures with a safe workflow.
- ToolDockerfile GeneratorGenerate a working Dockerfile for Node.js, Python, Go, or a static site, runs entirely in your browser.
- DocumentationDocker FundamentalsHow images, containers, volumes, and networks fit together in Docker's runtime model, and the shift from installing software to running images.
- BlogHow to Build a Production-Ready Azure Environment with TerraformBuild an Azure foundation with Terraform remote state, controlled outbound access, private endpoints, Key Vault, Storage, monitoring, verification, and cleanup.
- ToolDocker Compose GeneratorBuild a multi-service docker-compose.yml from a simple form, runs entirely in your browser.