GitHub Actions YAML Generator
Build a GitHub Actions workflow from a form — triggers, jobs, and steps
Workflow Configuration
workflow.yml
Summary
About this tool
This tool generates a GitHub Actions workflow file (.github/workflows/*.yml) from a visual form. Configure the workflow name, triggers (push, pull_request, schedule, workflow_dispatch), the runner image, and an ordered list of steps (uses actions or run commands). It emits valid, copy-ready YAML with correct key ordering — including the `on:` trigger key, which YAML 1.1 would otherwise coerce to boolean `true`. Use it to bootstrap CI/CD without remembering the schema. Everything runs locally in your browser.
Examples & Use Cases
Node.js CI on push
# Workflow
name: CI
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm testRuns on every push to main; checks out the repo, installs deps, and runs tests on ubuntu-latest.
Scheduled cron job
# Workflow
name: Nightly
on:
schedule:
- cron: '0 2 * * *'
workflow_dispatch:
jobs:
nightly:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run report
run: npm run reportRuns daily at 02:00 UTC and can be triggered manually via workflow_dispatch.
Pull request check
# Workflow
name: PR Check
on:
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run lintRuns lint on pull requests targeting main.
Examples
Build a push-triggered workflow on ubuntu-latest
triggers: push
runner: ubuntu-latest
step 1: uses actions/checkout@v4on:
push:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4A minimal push-triggered workflow that checks out the repo on every push to any branch. The wildcard branch filter is the default when no branch is specified.
Build a cron-triggered workflow with multiple steps
trigger: schedule cron "0 9 * * *"
runner: ubuntu-latest
step 1: run: echo "Daily job" shell: bashon:
schedule:
- cron: "0 9 * * *"
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "Daily job"
shell: bashThe cron string is quoted in the YAML output to prevent GitHub from misinterpreting the * characters. Shell is explicitly set to bash for portability.
About this tool
GitHub Actions YAML Generator lets you build a GitHub Actions workflow YAML file from a form — no YAML knowledge required. Choose triggers (push, pull_request, schedule cron, workflow_dispatch), a runner (ubuntu-latest, windows-latest, macos-latest, or custom), and a sequence of steps that can use actions (uses:) or run shell commands (run:).
The YAML is built manually rather than serialised through js-yaml to avoid a subtle trap: when a JavaScript boolean true is serialised, YAML emits on: true, which GitHub Actions rejects. The generator always emits on: as a bare word to keep every workflow valid from the first copy.
Everything runs locally in your browser — no GitHub token is needed and no workflow is uploaded.
How to use
Choose your trigger
Pick one or more triggers: push, pull_request, schedule (enter a cron expression), or workflow_dispatch for manual runs. Each trigger can have branch filters and path filters.
Set the runner
Choose ubuntu-latest, windows-latest, macos-latest, or enter a custom runner label.
Add steps
For each step, pick 'uses' (enter an action like actions/checkout@v4 with optional with: inputs) or 'run' (enter shell commands and choose a shell: bash, pwsh, python, sh).
Copy the workflow YAML
Copy the generated YAML and save it as .github/workflows/<name>.yml in your repository.
Use cases
CI pipeline scaffolding
Kickstart a new CI workflow by filling in the form — triggers, runner, and steps — and copy the YAML into .github/workflows/ci.yml without hand-editing indentation.
Scheduled maintenance jobs
Build a workflow_dispatch or schedule cron workflow to automate daily database cleanup, report generation, or dependency updates.
Reproducing a colleague's setup
Share a workflow form snapshot verbally or in a PR comment, then generate the same YAML in seconds instead of copying and editing from memory.
Common mistakes
Mistake:Using a bare boolean for the on keyword.
Fix:on: true or on: push: true serialises as the YAML word 'true', which GitHub Actions rejects. The builder always emits on: and its sub-keys as bare words to keep the trigger valid.
Mistake:Putting shell commands in uses: instead of run:.
Fix:uses: expects an actions/* or third-party action reference (owner/repo@ref). Inline scripts belong in run:, with an explicit shell: when the default shell isn't right (e.g. pwsh for PowerShell on Windows).
Frequently asked questions
Related guides
References & standards
Related tools
Driver's License Generator
Generate driver's license numbers in the correct format for 21 countries and all 50 US states, plus a format and Luhn validator — test data only, runs in your browser.
Address Generator
Generate realistic addresses in the correct format for 21 countries — single-line, multi-line, JSON or HTML — plus a postcode validator. Test data only, runs in your browser.
Phone Number Generator
Generate phone numbers in the correct format per country — mobile, landline and toll-free — in international, national, raw or tel: format, plus a validator. Test data only.
XML to JSON Converter
Convert XML data to JSON format with attribute handling, configurable parsing options, and live statistics
Markdown to HTML Converter
Convert Markdown to clean HTML with GitHub-Flavored Markdown, syntax highlighting, and optional sanitization
Docker Run to Compose Converter
Convert a docker run command into a docker-compose.yml service definition with full flag support