Translate GitHub Actions YAML workflows into robust .gitlab-ci.yml pipelines with stages, container images, caching, and artifacts.
stages:
- test
- deploy
default:
image: oven/bun:latest
test_job:
stage: test
script:
- npm ci
- npm test
- npm run build
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .bun/
GitLab CI requires explicit Docker images for jobs, whereas GitHub Actions provides Ubuntu VM runners.
GitHub Action marketplace steps (e.g. actions/checkout, actions/setup-node) must be replaced with shell scripts.
Paste your GitHub Actions workflow YAML file.
The migrator extracts step commands into GitLab CI `script` arrays.
Map workflow triggers (`push`, `pull_request`) into GitLab CI `rules` and `stages`.
Copy the generated config into `.gitlab-ci.yml` in your GitLab repository.
curl --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--header "Content-Type: application/json" \
--data '{"content": "'"$(cat .gitlab-ci.yml | jq -s -R .)"'"}' \
"https://gitlab.com/api/v4/ci/lint"
Perform identical migration routines across entire directories or repositories in your local terminal:
devflow migrate gha-to-gitlab -i .github/workflows/ci.yml -o .gitlab-ci.yml