GitLab Release Process
This repository contains instructions for releasing new versions of GitLab Community Edition (CE), Enterprise Edition (EE) and GitLab.com release related processes.
The goal is to provide clear instructions and procedures for our entire release process. This repository includes documentation which should help perform the role of Release Manager as well as documentation that should help other stake-holders in the release process.
The topics are divided per each type of release. Each type of release has a general process overview and specific documentation for different stakeholders.
Release Manager
Releasing monthly stable version
- General process overview
- Release manager in monthly release
- Guidelines for a new major release of GitLab
Releasing patch versions
- General process overview
- How to create a blog post for a patch release
- How to handle backport requests
Security release
- General process overview
- Release manager in security release
- Security engineer in security release
- Developer in security release
- Quality engineer in security release
How to guides
Runbooks
Deployment
- Traffic Generation
- Post Deployment Patches
- Auto-deploy process
- Deploy Failures
- Temporarily stopping auto-deploy process
Guides
- Overview of our Tooling
- Overview of the release management dashboard
- Overview of Building Packages
- Required permissions to tag and deploy a release
- Guidelines for a new major release of GitLab
- Pro tips
- Release template files
- How the GitLab FOSS mirror is kept up-to-date
- QA in a local environment
- Overview of pre and release environments
- Overview of the Deployment SLO dashboard
- How to set the auto-deploy branch schedule
- Release Manager guide to Incidents
Runbooks
- What to do in case of incident with Severity 1 (S1)
- Auto-Deploy - How to block Auto-Deploy on specific branch
- Auto-Deploy - How to recover from a canceled coordinated pipeline
- Background Migrations
- Variables!
- Auto-Deploy - How to rollback a deployment
- Merging with a red pipeline
- Self-Managed - How to release new minor versions of GitLab each month
- Self-Managed - How to release patch versions of GitLab
- Self-Managed - How to create release candidates for new monthly versions of GitLab
- Self-Managed - How to remove packages from packages.gitlab.com
- Self-Managed - How to create a blog post for a patch release
- Self-Managed - How to fix a broken stable branch
- How to resolve failing QA tests
- How to drain Canary
- Running QA for Backports
- How to deploy risky MRs in isolation
- How to speed the auto-deploy process for urgent merge requests?
- Evaluate Deployment health
- How to deploy to a single environment
Glossary
Further Reading
- "Release Manager - The invisible hero" (2015-06-25)
- "How we managed 49 monthly releases" (2015-12-17)
Contributing
See CONTRIBUTING.md.
License
See LICENSE.