GitLab is a Git hosting platform made by GitLab Inc., built around the idea of a single "DevOps platform" that covers source control, merge requests, built-in CI/CD, and issue tracking without stitching together separate tools. It's the #3 most-used dev collaboration platform, reported in roughly 35.6% of developer surveys. Teams choose it especially when they want to self-host their entire toolchain, since GitLab ships as an open-core product you can run on your own servers.
GitLab's built-in CI/CD is configured with a .gitlab-ci.yml file at the repo root, defining stages and jobs that run in GitLab Runners.
stages:
- build
- test
- deploy
build-job:
stage: build
script:
- echo "Building the app..."
- npm install
test-job:
stage: test
script:
- npm test
deploy-job:
stage: deploy
script:
- echo "Deploying to production..."
only:
- main
Sign up free at gitlab.com (or spin up a self-hosted instance with Docker), then push your existing repo.
# self-hosted GitLab via Docker
docker run --detach --hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --name gitlab \
gitlab/gitlab-ce:latest
# or just push to gitlab.com
git remote add origin https://gitlab.com/username/my-repo.git
git push -u origin main