GitHub Actions YAML Generator

Build a GitHub Actions workflow from a form — triggers, jobs, and steps

Workflow Configuration

1
2

workflow.yml

Summary

Steps:2
Runner:ubuntu-latest
Triggers:push
Output Size:181 bytes

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 test

Runs 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 report

Runs 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 lint

Runs lint on pull requests targeting main.

    Examples

    Build a push-triggered workflow on ubuntu-latest

    Input
    triggers: push
    runner: ubuntu-latest
    step 1: uses actions/checkout@v4
    Output
    on:
      push:
        branches:
          - '*'
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4

    A 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

    Input
    trigger: schedule cron "0 9 * * *"
    runner: ubuntu-latest
    step 1: run: echo "Daily job" shell: bash
    Output
    on:
      schedule:
        - cron: "0 9 * * *"
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - run: echo "Daily job"
            shell: bash

    The 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

    1. 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.

    2. Set the runner

      Choose ubuntu-latest, windows-latest, macos-latest, or enter a custom runner label.

    3. 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).

    4. 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

    References & standards