All tools / DevOps & infrastructure
GitHub Actions workflow generator
Answer a few questions and get a complete CI/CD workflow: tests on every push, a Docker image on main, and an optional deploy.
1. Project
2. When it runs
3. Commands leave a field empty to skip that step
4. Docker image and deploy
Common questions
Where do I put the workflow file?
Save it in your repository as .github/workflows/ci.yml and push. GitHub picks up every YAML file in that folder automatically, and the run appears under the Actions tab.
Why are permissions set to contents: read?
By default the GITHUB_TOKEN can often write to your repository. Limiting it to read access means a compromised dependency or step cannot push code. Jobs that need more, like pushing to GHCR or deploying Pages, ask for exactly the extra permission they need.
How do I keep the action versions up to date?
Add the generated .github/dependabot.yml. Dependabot then opens a pull request each week when a new version of an action, or of your project's packages, is released.
How do I approve deploys by hand?
The deploy job uses an environment called production. In your repository go to Settings, Environments, production, and add required reviewers. Each deploy then waits until one of them approves it.
Does the Docker image get the right tags?
Yes. Pushes to main are tagged with the branch name and a sha- tag for the commit, and a tag like v1.2.3 also produces a 1.2.3 image tag. Build layers are cached in GitHub Actions, so rebuilds are fast.
Is anything sent to a server?
No. The workflow is generated in your browser.