How to use the GitLab CI Generator
- Choose your stack — Node.js, Python, Go, a Docker image or a static site on GitLab Pages — and set the version.
- Tick the jobs you want: lint, test, build, coverage; keep merge request rules on to test every MR.
- Optionally add a deploy job to a server over SSH or to Pages, with manual approval if you like.
- Commit the file as
.gitlab-ci.ymlin the repository root — the pipeline starts on the next push.
How the pipeline is put together
- workflow:rules run the pipeline for merge requests and for pushes to the default branch, and skip the duplicate branch pipeline when an MR is open.
- cache is keyed on the lock file (
package-lock.json,pnpm-lock.yaml,requirements.txt,go.sum) so dependencies install quickly and the cache refreshes when they change. - artifacts pass the build output to later jobs and keep test and coverage reports, which GitLab shows in the merge request.
- interruptible: true with “auto-cancel redundant pipelines” stops outdated pipelines when you push again.
Secrets
Never put passwords or keys in the YAML. Add them under Settings → CI/CD → Variables (masked and protected) — the deploy job expects SSH_PRIVATE_KEY and SSH_KNOWN_HOSTS there. The Docker job uses GitLab’s built-in CI_REGISTRY variables, so it needs no setup.
Using GitHub instead? Try the GitHub Actions Generator. Related: Dockerfile Generator, YAML Validator.
Also searched as: gitlab-ci.yml generator, gitlab ci yml example, gitlab pipeline generator, gitlab ci node, gitlab ci docker build, gitlab pages ci, gitlab ci template.
Tools that pair well with the GitLab CI Generator
- GitHub Actions Workflow Validator — Paste a workflow from .github/workflows and find problems before CI does — invalid triggers, missing runs-on, broken needs, bad expressions, outdated actions and script-injection risks.
- Docker Compose Generator — Tick the services you need — app, database, cache, admin UI, mail catcher — and get a clean compose.yaml with pinned images, named volumes, healthchecks and depends_on conditions, plus a matching .env with generated passwords.
- Kubernetes YAML Generator — Fill in your app’s name, image and port and get production-ready Kubernetes YAML: a Deployment with probes, resource limits and a hardened security context, plus the Service, Ingress with TLS, ConfigMap, Secret and HorizontalPodAutoscaler you tick — in one file ready for kubectl apply.
- systemd Service Generator — Run your app as a proper Linux service that starts on boot and restarts when it crashes.