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

5 6
# Universal update guide for patch versions

7 8 9 10 11
## Select Version to Install

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

### 0. Backup

It's useful to make a backup just in case things go south:

```bash
cd /home/git/gitlab
19

20 21 22 23 24
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
```

### 1. Stop server

25 26 27
```bash
sudo service gitlab stop
```
28

dosire's avatar
dosire committed
29
### 2. Get latest code for the stable branch
30

31 32 33 34 35
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`).

36 37
```bash
cd /home/git/gitlab
38

39
sudo -u git -H git fetch --all
40
sudo -u git -H git checkout -- Gemfile.lock db/schema.rb locale
41
sudo -u git -H git checkout LATEST_TAG -b LATEST_TAG
42 43
```

44
### 3. Install libs, migrations, etc
45 46 47 48

```bash
cd /home/git/gitlab

49
sudo -u git -H bundle install --without development test mysql --deployment
50

51
# Optional: clean up old gems
52
sudo -u git -H bundle clean
53 54

# Run database migrations
55
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
56

57 58 59
# Compile GetText PO files
# Internationalization was added in `v9.2.0` so these commands are only
# required for versions equal or major to it.
60 61 62
sudo -u git -H bundle exec rake gettext:pack RAILS_ENV=production
sudo -u git -H bundle exec rake gettext:po_to_json RAILS_ENV=production

63
# Clean up assets and cache
64
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"
65 66
```

67
### 4. Update gitlab-workhorse to the corresponding version
68 69 70 71 72 73 74

```bash
cd /home/git/gitlab

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

75 76 77 78 79
### 5. Update gitaly to the corresponding version

```bash
cd /home/git/gitlab

80
sudo -u git -H bundle exec rake "gitlab:gitaly:install[/home/git/gitaly,/home/git/repositories]" RAILS_ENV=production
81 82 83
```

### 6. Update gitlab-shell to the corresponding version
84 85 86 87 88

```bash
cd /home/git/gitlab-shell

sudo -u git -H git fetch --all --tags
89
sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_SHELL_VERSION) -b v$(</home/git/gitlab/GITLAB_SHELL_VERSION)
90
sudo -u git -H sh -c 'if [ -x bin/compile ]; then bin/compile; fi'
91 92
```

93 94 95 96 97 98 99 100 101 102
### 7. Update gitlab-pages to the corresponding version (skip if not using pages)

```bash
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
```

103
### 8. Install/Update `gitlab-elasticsearch-indexer` (optional) **(STARTER ONLY)**
104

105
If you're interested in using GitLab's new [elasticsearch repository indexer](../integration/elasticsearch.md#elasticsearch-repository-indexer-beta) (currently in beta)
106 107 108 109
please follow the instructions on the document linked above and enable the
indexer usage in the GitLab admin settings.

### 9. Start application
110

111 112 113 114
```bash
sudo service gitlab start
sudo service nginx restart
```
115

116
### 10. Check application status
117 118 119

Check if GitLab and its environment are configured correctly:

120
```bash
121 122
cd /home/git/gitlab

123 124
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
```
125 126 127

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

128 129 130
```bash
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
```
131 132

If all items are green, then congratulations upgrade complete!