patch_versions.md 3.53 KB
Newer Older
1 2 3 4
---
comments: false
---

5 6
# Universal update guide for patch versions

7 8
## Select Version to Install

9
Make sure you view [this update guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/patch_versions.md) from the tag (version) of GitLab you would like to install.
10
In most cases this should be the highest numbered production tag (without `rc` in it).
11
You can select the tag in the version dropdown in the top left corner of GitLab (below the menu bar).
12 13 14

### 0. Backup

15
It's useful to make a backup just in case things go south. Depending on the installation method, backup commands vary. See the [backing up and restoring GitLab](../raketasks/backup_restore.md) documentation.
16 17 18

### 1. Stop server

19
```shell
20 21
sudo service gitlab stop
```
22

Sid Sijbrandij's avatar
Sid Sijbrandij committed
23
### 2. Get latest code for the stable branch
24

25 26 27 28 29
In the commands below, replace `LATEST_TAG` with the latest GitLab tag you want
to update to, for example `v8.0.3`. Use `git tag -l 'v*.[0-9]' --sort='v:refname'`
to see a list of all tags. Make sure to update patch versions only (check your
current version with `cat VERSION`).

30
```shell
31
cd /home/git/gitlab
32

33
sudo -u git -H git fetch --all
Andreas Brandl's avatar
Andreas Brandl committed
34
sudo -u git -H git checkout -- Gemfile.lock db/structure.sql locale
35
sudo -u git -H git checkout LATEST_TAG -b LATEST_TAG
36 37
```

38
### 3. Install libraries, migrations, etc
39

40
```shell
41 42
cd /home/git/gitlab

43
sudo -u git -H bundle install --without development test mysql --deployment
44

FireFart's avatar
FireFart committed
45
# Optional: clean up old gems
FireFart's avatar
FireFart committed
46
sudo -u git -H bundle clean
FireFart's avatar
FireFart committed
47 48

# Run database migrations
49
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
FireFart's avatar
FireFart committed
50

51
# Compile GetText PO files
52
# Internationalization was added in `v9.2.0` so this command is only
53
# required for versions equal or major to it.
54
sudo -u git -H bundle exec rake gettext:compile RAILS_ENV=production
55

FireFart's avatar
FireFart committed
56
# Clean up assets and cache
57
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"
58 59
```

60
### 4. Update GitLab Workhorse to the corresponding version
61

62
```shell
63 64 65 66 67
cd /home/git/gitlab

sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse]" RAILS_ENV=production
```

68
### 5. Update Gitaly to the corresponding version
69

70
```shell
71 72
cd /home/git/gitlab

73
sudo -u git -H bundle exec rake "gitlab:gitaly:install[/home/git/gitaly,/home/git/repositories]" RAILS_ENV=production
74 75
```

76
### 6. Update GitLab Shell to the corresponding version
77

78
```shell
79 80 81
cd /home/git/gitlab-shell

sudo -u git -H git fetch --all --tags
82
sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_SHELL_VERSION) -b v$(</home/git/gitlab/GITLAB_SHELL_VERSION)
83
sudo -u git -H make build
84 85
```

86
### 7. Update GitLab Pages to the corresponding version (skip if not using pages)
87

88
```shell
89 90 91 92 93 94 95
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
```

Mark Chao's avatar
Mark Chao committed
96
### 8. Install/Update `gitlab-elasticsearch-indexer` **(STARTER ONLY)**
97

98
Please follow the [install instruction](../integration/elasticsearch.md#installing-elasticsearch).
99 100

### 9. Start application
101

102
```shell
103 104 105
sudo service gitlab start
sudo service nginx restart
```
106

107
### 10. Check application status
108 109 110

Check if GitLab and its environment are configured correctly:

111
```shell
112 113
cd /home/git/gitlab

114 115
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
```
116 117 118

To make sure you didn't miss anything run a more thorough check with:

119
```shell
120 121
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
```
122 123

If all items are green, then congratulations upgrade complete!