GitHub Actions Workflow Generator
Generate a ready-to-commit GitHub Actions CI workflow (.github/workflows/*.yml) from your stack and options — pick a language (Node.js, Python, Go, Rust, PHP, Ruby, Java, or .NET), a version and OS matrix, trigger events (push / pull_request / schedule / workflow_dispatch), lint/test/build steps, an optional deploy job, dependency caching and concurrency. Runs entirely in your browser.
Input
The workflow's display name in the Actions tab.
Comma-separated runtime versions for the matrix (e.g. Node 20, 22).
Triggers
Comma-separated branches that trigger the workflow on push.
Branches that pull requests must target.
Job Steps
Comma-separated runner labels for the matrix (e.g. ubuntu-latest, macos-latest, windows-latest).
Leave empty to use a sensible default for the selected stack.
Extras
Workflow-level env. Use ${{ secrets.NAME }} to reference a secret.
Output
Guides
The GitHub Actions Workflow Generator builds a ready-to-commit CI pipeline for your repository. Pick your language, choose which events trigger the run, and toggle the steps you want — the tool writes a correctly indented .github/workflows/ci.yml you can copy or download in seconds. No account, no CLI, no YAML wrestling.
What it generates
The output is a complete GitHub Actions workflow with a build job that runs on an OS and runtime-version matrix. It wires up the right official setup action for your stack, installs dependencies with your chosen package manager, and adds only the steps you enable: lint, test, and build. An optional second deploy job runs after the build passes, gated to a single branch.
Supported stacks:
- Node.js —
actions/setup-node, with npm, yarn, or pnpm - Python —
actions/setup-python, with pip, Poetry, or Pipenv - Go —
actions/setup-gowith module caching - Rust —
dtolnay/rust-toolchainplusSwatinem/rust-cache - PHP —
shivammathur/setup-php - Ruby —
ruby/setup-rubywith bundler cache - Java —
actions/setup-java, Temurin/Zulu/Adopt/Microsoft/Corretto, Maven or Gradle - .NET —
actions/setup-dotnet
How to use it
- Enter a workflow name (shown in the Actions tab) and pick your stack.
- List the runtime versions and operating systems for the build matrix — each combination runs in parallel.
- Choose your triggers: push, pull_request (with target branches), a cron schedule, and/or manual
workflow_dispatch. - Toggle the lint / test / build steps. Leave a command box empty to accept a sensible default for your stack, or type your own.
- Optionally add a deploy job bound to a branch, enable dependency caching, and turn on concurrency so a new push cancels an in-progress run on the same ref.
- Copy the YAML or download
ci.ymland drop it into.github/workflows/in your repo.
Why a build matrix?
A matrix runs your job once per combination of version and OS — for example Node 20 and 22 on Ubuntu and macOS at the same time. It catches version- and platform-specific failures early. fail-fast: false is set so one failing cell doesn't cancel the others, giving you the full picture on every run.
What does concurrency do?
The concurrency block groups runs by workflow and ref and cancels any that are still in progress when a newer commit arrives. That saves runner minutes and makes sure only the latest commit's result matters on a busy branch.
Are my inputs private?
Yes. The workflow is generated entirely in your browser with plain string templating — nothing is uploaded, logged, or sent to a server. Reference secrets safely in your env vars with ${{ secrets.NAME }}; the generator never sees their values.
Can I edit the result?
Absolutely. The generated file is a normal, standards-compliant workflow — treat it as a starting point and adjust action versions, add jobs, or wire in deployment credentials as your project grows.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/github-actions-workflow-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workflowName": "CI",
"stack": "node",
"stackVersions": "20, 22",
"packageManager": "npm",
"triggerPush": "true",
"pushBranches": "main",
"triggerPR": "true",
"pRBranches": "main",
"triggerSchedule": "",
"triggerDispatch": "true",
"matrixOS": "ubuntu-latest",
"stepLint": "",
"stepTest": "true",
"testCommand": "",
"stepBuild": "",
"stepDeploy": "",
"enableCache": "true",
"enableConcurrency": "true",
"envVars": ""
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `github-actions-workflow-generator` tool (GitHub Actions Workflow Generator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.