Skip to content
gohacks.dev
DevOps

GitHub Actions Workflow Generator

Generate a GitHub Actions CI workflow for Node.js, PHP, Python or Go with dependency caching, a database service container and an optional image push to GHCR.

Free · No sign-up · Your inputs stay in your browser

Input

Generate a GitHub Actions CI workflow

Output

.github/workflows/ci.yml

473 characters

permissions: contents: read narrows the GITHUB_TOKEN to what a test needs; only the image job is granted packages: write. concurrency cancels the previous run on the same branch when you push again. Pin third-party actions to a commit SHA in security-sensitive repositories.

Runs in this browser. Nothing you paste is sent to a server.

Permissions and pinning

The workflow sets permissions: contents: read at the top and grants packages: write only to the image job, so a compromised step in tests cannot push packages. Third-party actions run with your token: in sensitive repositories pin them to a full commit SHA rather than a tag. GitHub's security hardening guide covers both.

Service containers

A services: block starts the database next to the job and the health options make the job wait until it accepts connections. It is reachable on localhost at the published port.

Share

Frequently asked questions

How do I cache dependencies in GitHub Actions?
The setup actions cache for you: setup-node with cache: npm, setup-uv with enable-cache, setup-go caches modules by default. For Composer, actions/cache keyed on composer.lock.
Why cancel in-progress runs?
Pushing twice to a branch otherwise runs CI twice, and the first result is already outdated. The concurrency group cancels it and saves minutes.
Is what I paste sent anywhere?
No. The tool runs entirely in your browser with JavaScript. Nothing you type or paste is sent to our server or stored.

Keep planning

Similar tools