GitHub Actions Workflow Generator

A form-driven way to create a GitHub Actions CI pipeline. Set the triggers, runner and language, and the ci.yml is written for you to paste into .github/workflows/.

This GitHub Actions workflow generator writes a ready-to-commit .github/workflows/ci.yml from a form instead of leaving you to remember the exact indentation of the on: block. Choose when the workflow runs (push, pull_request with branch filters, a manual dispatch button, or a cron schedule), pick the runner and a language preset for Node, Python, Go, Rust or Docker, and it seeds the usual steps: checkout, language setup, install, test and build. Add a version matrix to fan a job across several Node or Python versions, or drop in your own run commands. The YAML updates as you edit and you copy or download the finished file.

.github/workflows/ci.yml
Workflow
Triggers
Environment
Steps
Build matrix
Custom steps
ci.yml

How it works

  1. 1

    Choose the triggers

    Toggle push and pull_request (with the branches they watch), a workflow_dispatch button for manual runs, or a cron schedule. The on: block is built from whatever you enable.

  2. 2

    Pick a runner and preset

    Select ubuntu, macOS or Windows, then a Node, Python, Go, Rust or Docker preset. That seeds checkout, language setup and install/test/build steps you can switch off individually.

  3. 3

    Add a matrix or custom steps

    Fan the job across versions like 18, 20, 22, add your own named run commands, then copy the ci.yml or download it straight into .github/workflows/.

Instant & 100% private — nothing is uploaded

Everything runs locally in your browser. Your code, text and files are processed on your own device and are never sent to a server — so there are no upload waits, no size limits from us, and nothing is ever stored or logged.

Frequently asked questions

How do I generate a ci.yml for a Node project?
Keep the Node preset, leave push and pull_request on for main, and turn on the matrix with 18, 20, 22. You get a job that runs actions/checkout@v4, actions/setup-node@v4 with node-version ${{ matrix.node-version }}, then npm ci and npm test — the whole strategy.matrix.node-version block ready to commit.
Why does the workflow use on: and not true:?
In YAML the bare word on is the boolean true, so a naive dump turns the key into true:. This generator serializes the object and then rewrites the key back to a real on:, so GitHub reads your triggers correctly. Empty triggers like workflow_dispatch: are written without a trailing null too.
Can I schedule the workflow with cron?
Yes. Enable the schedule trigger and enter a cron expression in UTC, for example */15 * * * * to run every fifteen minutes or 0 6 * * 1 for 06:00 every Monday. Comma-separate several to emit multiple schedule entries, and each cron is quoted so lines starting with * stay valid YAML.
How do I add my own build or lint command?
Use the custom steps section. Give the step a name like Lint and a command like npm run lint, and it is appended after the preset steps as a - name/run pair. Leave the name blank for a bare run: step. Add as many rows as you need.