Boneyard Tools

GitHub Actions Workflow Generator

Set your triggers, language, version matrix and build steps, and get a valid GitHub Actions workflow you can drop into .github/workflows. The YAML updates as you edit, so you can copy or download it the moment it looks right.

How to generate a GitHub Actions workflow

  1. Choose your triggers (push, pull request, manual or a cron schedule) and target branches.
  2. Pick the language and version, optionally add a version matrix, and toggle the steps you need.
  3. Copy the generated YAML or download it as ci.yml into your repository's .github/workflows folder.

Examples

Node CI on push and pull request

{ language: "node", version: "20", triggers: { push: { branches: ["main"] }, pullRequest: { branches: ["main"] } }, steps: { setupLanguage: true, install: true, test: true } }
name: CI
on:
  push:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
      - run: npm test

Node test matrix

{ language: "node", matrix: ["18", "20", "22"], steps: { test: true } }
jobs:
  build:
    strategy:
      matrix:
        version:
          - "18"
          - "20"
          - "22"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.version }}

Frequently asked questions

Where does the generated workflow file go?

Save it inside your repository at .github/workflows, for example .github/workflows/ci.yml. GitHub runs every YAML file it finds in that folder automatically.

Which languages and actions does it use?

It targets Node.js, Python, Go and Rust using the current official setup actions: actions/checkout@v4, actions/setup-node@v4, actions/setup-python@v5, actions/setup-go@v5 and dtolnay/rust-toolchain.

What is the version matrix for?

A matrix runs the same job once per version in parallel, so you can test against, say, Node 18, 20 and 22 at once. Add the versions you care about and the workflow fans out automatically.

Can I schedule a workflow or run it manually?

Yes. Enable workflow_dispatch to add a Run workflow button in the Actions tab, and add a cron expression like 0 0 * * * to run the workflow on a schedule.

Is the YAML valid and safe to commit?

The output is generated with a YAML serializer and uses real action names and the standard on/jobs/steps structure, so it is valid GitHub Actions syntax. Review the commands for your project before committing.

Is anything uploaded to a server?

No. The workflow is built entirely in your browser. Nothing you type is sent anywhere, so it is safe to use with private repositories and internal branch names.

Related tools