# Update from 5.3 to 5.4

__GitLab CI 5.4 requires GitLab 7.5 or higher and GitLab CI Runner v5__

### 1. stop CI server

    sudo service gitlab_ci stop

### 2. Switch to your gitlab_ci user

```
sudo su gitlab_ci
cd /home/gitlab_ci/gitlab-ci
```

### 3. Get latest code

```
git fetch
git checkout 5-4-stable
```

#### Redis config

If you have `config/resque.yml` file - please update it with recent `config/resque.yml.example`

### 4. Install libs, migrations etc

```
# For MySQL users
bundle install --without postgres development test --deployment

# For Postgres users
bundle install --without mysql development test --deployment

# Run migrations
bundle exec rake db:migrate RAILS_ENV=production
```

### 5. Update config
GitLab CI 5.4 and above make use of the OAuth2 protocol for authentication with GitLab. This means that after updating GitLab (CI), 
you need to create an OAuth2 application in GitLab admin area, which gives you the APP_ID and APP_SECRET. 

For callback URL use: `http://ci.example.com/user_sessions/callback` if you use http, or `https://ci.example.com/user_sessions/callback` if you use https. 

You will have to add APP_ID and APP_SECRET to the GitLab CI config, as such:

```
production:
  gitlab_server:
    url: 'http://gitlab.example.com'
    app_id: XXXXXX
    app_secret: XXXXXX

```


### 6. Start web application

    sudo service gitlab_ci start
