- Stop GitLab server
- Get latest code for the stable branch
- Install libraries and run migrations
- Update GitLab Workhorse to the new patch version
- Update Gitaly to the new patch version
- Update GitLab Shell to the new patch version
- Update GitLab Pages to the new patch version (if required)
- Install or update
gitlab-elasticsearch-indexer
- Start GitLab
- Check GitLab and its environment
- Make sure background migrations are finished
Update self-compiled installations with patch versions
Update self-compiled installations with patch versions.
Prerequisites:
- A back up of your self-compiled installation.
Stop GitLab server
To stop the GitLab server:
# For systems running systemd
sudo systemctl stop gitlab.target
# For systems running SysV init
sudo service gitlab stop
Get latest code for the stable branch
In the following commands, replace LATEST_TAG
with the GitLab tag to update to. For example, v8.0.3
.
-
Check your current version:
cat VERSION
-
Get a list of all available tags:
git tag -l 'v*.[0-9]' --sort='v:refname'
- Choose a patch version for your current major and minor version.
-
Check out the code for the patch version to use:
cd /home/git/gitlab sudo -u git -H git fetch --all sudo -u git -H git checkout -- Gemfile.lock db/structure.sql locale sudo -u git -H git checkout LATEST_TAG -b LATEST_TAG
Install libraries and run migrations
To install libraries and run migrations, run the following commands:
cd /home/git/gitlab
# If you haven't done so during installation or a previous upgrade already
sudo -u git -H bundle config set --local deployment 'true'
sudo -u git -H bundle config set --local without 'development test kerberos'
# Update gems
sudo -u git -H bundle install
# Optional: clean up old gems
sudo -u git -H bundle clean
# Run database migrations
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
# Clean up assets and cache
sudo -u git -H bundle exec rake yarn:install gitlab:assets:clean gitlab:assets:compile cache:clear RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
Update GitLab Workhorse to the new patch version
To update GitLab Workhorse to the new patch version:
cd /home/git/gitlab
sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse]" RAILS_ENV=production
Update Gitaly to the new patch version
To update Gitaly to the new patch version:
cd /home/git/gitlab
sudo -u git -H bundle exec rake "gitlab:gitaly:install[/home/git/gitaly,/home/git/repositories]" RAILS_ENV=production
Update GitLab Shell to the new patch version
To update GitLab Shell to the new patch version:
cd /home/git/gitlab-shell
sudo -u git -H git fetch --all --tags
sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_SHELL_VERSION) -b v$(</home/git/gitlab/GITLAB_SHELL_VERSION)
sudo -u git -H make build
Update GitLab Pages to the new patch version (if required)
If you’re using GitLab Pages, update GitLab Pages to the new patch version:
cd /home/git/gitlab-pages
sudo -u git -H git fetch --all --tags
sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_PAGES_VERSION)
sudo -u git -H make
Install or update gitlab-elasticsearch-indexer
To install or update gitlab-elasticsearch-indexer
, follow the
installation instruction.
Start GitLab
To start GitLab, run the following commands:
# For systems running systemd
sudo systemctl start gitlab.target
sudo systemctl restart nginx.service
# For systems running SysV init
sudo service gitlab start
sudo service nginx restart
Check GitLab and its environment
To check if GitLab and its environment are configured correctly, run:
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
To make sure you didn’t miss anything run a more thorough check with:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
If all items are green, then congratulations upgrade complete!
Make sure background migrations are finished
Check the status of background migrations and make sure they are finished.