Commit 0b55ec11d50e75a145d5b7efbcb5d25e0a4a210e
Exists in
master
and in
4 other branches
Merge pull request #3783 from senny/move_update_instructions_to_repo
move the update guides from the wiki into the repo
Showing
6 changed files
with
396 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,63 @@ |
| 1 | +# From 2.6 to 3.0 | |
| 2 | + | |
| 3 | +### 1. Stop server & resque | |
| 4 | + | |
| 5 | + sudo service gitlab stop | |
| 6 | + | |
| 7 | +### 2. Update code & db | |
| 8 | + | |
| 9 | + | |
| 10 | +```bash | |
| 11 | +# Get latest code | |
| 12 | +git fetch origin | |
| 13 | +git checkout v3.0.3 | |
| 14 | + | |
| 15 | + | |
| 16 | +# Install libs | |
| 17 | +sudo -u gitlab bundle install --without development test postgres | |
| 18 | + | |
| 19 | +# update db | |
| 20 | +sudo -u gitlab bundle exec rake db:migrate RAILS_ENV=production | |
| 21 | + | |
| 22 | +# !!! Config should be replaced with a new one. Check it after replace | |
| 23 | +cp config/gitlab.yml.example config/gitlab.yml | |
| 24 | + | |
| 25 | +# update gitolite hooks | |
| 26 | + | |
| 27 | +# GITOLITE v2: | |
| 28 | +sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive | |
| 29 | +sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive | |
| 30 | + | |
| 31 | +# GITOLITE v3: | |
| 32 | +sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive | |
| 33 | +sudo chown git:git /home/git/.gitolite/hooks/common/post-receive | |
| 34 | + | |
| 35 | +# set valid path to hooks in gitlab.yml in git_host section | |
| 36 | +# like this | |
| 37 | +git_host: | |
| 38 | + # gitolite 2 | |
| 39 | + hooks_path: /home/git/share/gitolite/hooks | |
| 40 | + # gitolite 3 | |
| 41 | + hooks_path: /home/git/.gitolite/hooks/ | |
| 42 | + | |
| 43 | + | |
| 44 | +# Make some changes to gitolite config | |
| 45 | +# For more information visit https://github.com/gitlabhq/gitlabhq/pull/1719 | |
| 46 | + | |
| 47 | +# gitolite v2 | |
| 48 | +sudo -u git -H sed -i 's/\(GL_GITCONFIG_KEYS\s*=>*\s*\).\{2\}/\\1"\.\*"/g' /home/git/.gitolite.rc | |
| 49 | + | |
| 50 | +# gitlite v3 | |
| 51 | +sudo -u git -H sed -i "s/\(GIT_CONFIG_KEYS\s*=>*\s*\).\{2\}/\\1'\.\*'/g" /home/git/.gitolite.rc | |
| 52 | + | |
| 53 | + | |
| 54 | +# Check app status | |
| 55 | +sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production | |
| 56 | + | |
| 57 | + | |
| 58 | +``` | |
| 59 | + | |
| 60 | + | |
| 61 | +### 3. Start all | |
| 62 | + | |
| 63 | + sudo service gitlab start | ... | ... |
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +# From 2.9 to 3.0 | |
| 2 | + | |
| 3 | +### 1. Stop server & resque | |
| 4 | + | |
| 5 | + sudo service gitlab stop | |
| 6 | + | |
| 7 | +### 2. Follow instructions | |
| 8 | + | |
| 9 | +```bash | |
| 10 | + | |
| 11 | +# Get latest code | |
| 12 | +sudo -u gitlab -H git fetch origin | |
| 13 | +sudo -u gitlab -H git checkout v3.0.3 | |
| 14 | + | |
| 15 | +# Install gems | |
| 16 | +sudo -u gitlab -H bundle install --without development test postgres | |
| 17 | + | |
| 18 | +# Migrate db | |
| 19 | +sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production | |
| 20 | + | |
| 21 | +# Make some changes to gitolite v3 config | |
| 22 | +# For more information visit https://github.com/gitlabhq/gitlabhq/pull/1719 | |
| 23 | + | |
| 24 | +# Gitolite version 3 | |
| 25 | +sudo -u git -H sed -i "s/\(GIT_CONFIG_KEYS\s*=>*\s*\).\{2\}/\\1'\.\*'/g" /home/git/.gitolite.rc | |
| 26 | + | |
| 27 | +# If you still use gitolite v2 | |
| 28 | +sudo -u git -H sed -i 's/\(GL_GITCONFIG_KEYS\s*=>*\s*\).\{2\}/\\1"\.\*"/g' /home/git/.gitolite.rc | |
| 29 | + | |
| 30 | +# Check APP Status | |
| 31 | +sudo -u gitlab -H bundle exec rake gitlab:app:status RAILS_ENV=production | |
| 32 | +``` | |
| 33 | + | |
| 34 | + | |
| 35 | +### 3. Start all | |
| 36 | + | |
| 37 | + sudo service gitlab start | ... | ... |
| ... | ... | @@ -0,0 +1,108 @@ |
| 1 | +# From 3.0 to 3.1 | |
| 2 | + | |
| 3 | +__IMPORTANT!__ | |
| 4 | + | |
| 5 | +In this release __we moved Resque jobs under own gitlab namespace__. | |
| 6 | + | |
| 7 | +Despite a lot of advantages it requires from our users to __replace gitolite post-receive hook with new one__. | |
| 8 | + | |
| 9 | +Most of projects has post-receive file as symlink to gitolite `/home/git/.gitolite/hooks/post-receive`. | |
| 10 | +But some of them may have a real file. In this case you should rewrite it with symlink to gitolite hook. | |
| 11 | + | |
| 12 | +I wrote a bash script which will do it automatically for you. Just make sure all path inside is valid for you | |
| 13 | + | |
| 14 | +- - - | |
| 15 | + | |
| 16 | +### 1. Stop server & resque | |
| 17 | + | |
| 18 | + sudo service gitlab stop | |
| 19 | + | |
| 20 | +### 2. Update GitLab | |
| 21 | + | |
| 22 | +```bash | |
| 23 | + | |
| 24 | +# Get latest code | |
| 25 | +sudo -u gitlab -H git fetch | |
| 26 | +sudo -u gitlab -H git checkout v3.1.0 | |
| 27 | + | |
| 28 | +# Install new charlock_holmes | |
| 29 | +sudo gem install charlock_holmes --version '0.6.9' | |
| 30 | + | |
| 31 | +# Install gems for MySQL | |
| 32 | +sudo -u gitlab -H bundle install --without development test postgres sqlite | |
| 33 | + | |
| 34 | + | |
| 35 | +# Migrate db | |
| 36 | +sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production | |
| 37 | + | |
| 38 | + | |
| 39 | +``` | |
| 40 | + | |
| 41 | +### 3. Update post-receive hooks | |
| 42 | + | |
| 43 | +#### Gitolite 3 | |
| 44 | + | |
| 45 | +Step 1: Rewrite post-receive hook | |
| 46 | + | |
| 47 | +```bash | |
| 48 | +# Rewrite hook for gitolite 3 | |
| 49 | +sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive | |
| 50 | +sudo chown git:git /home/git/.gitolite/hooks/common/post-receive | |
| 51 | +``` | |
| 52 | + | |
| 53 | +Step 2: Rewrite hooks in all projects to symlink gitolite hook | |
| 54 | + | |
| 55 | +```bash | |
| 56 | +# 1. Check for valid path | |
| 57 | +sudo -u gitlab -H vim lib/support/rewrite-hooks.sh | |
| 58 | + | |
| 59 | +# 2. Run script | |
| 60 | +sudo -u git -H lib/support/rewrite-hooks.sh | |
| 61 | +``` | |
| 62 | + | |
| 63 | +#### Gitolite v2 | |
| 64 | + | |
| 65 | +Step 1: rewrite post-receive hook for gitolite 2 | |
| 66 | + | |
| 67 | +``` | |
| 68 | +sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive | |
| 69 | +sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive | |
| 70 | +``` | |
| 71 | + | |
| 72 | +Step 2: Replace symlinks in project to valid place | |
| 73 | + | |
| 74 | + | |
| 75 | + #!/bin/bash | |
| 76 | + src="/home/git/repositories" | |
| 77 | + for dir in `ls "$src/"` | |
| 78 | + do | |
| 79 | + if [ -d "$src/$dir" ]; then | |
| 80 | + | |
| 81 | + if [ "$dir" = "gitolite-admin.git" ] | |
| 82 | + then | |
| 83 | + continue | |
| 84 | + fi | |
| 85 | + | |
| 86 | + project_hook="$src/$dir/hooks/post-receive" | |
| 87 | + gitolite_hook="/home/git/share/gitolite/hooks/common/post-receive" | |
| 88 | + | |
| 89 | + ln -s -f $gitolite_hook $project_hook | |
| 90 | + fi | |
| 91 | + done | |
| 92 | + | |
| 93 | + | |
| 94 | +### 4. Check app status | |
| 95 | + | |
| 96 | +```bash | |
| 97 | + | |
| 98 | +# Check APP Status | |
| 99 | +sudo -u gitlab -H bundle exec rake gitlab:app:status RAILS_ENV=production | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | +``` | |
| 104 | + | |
| 105 | + | |
| 106 | +### 5. Start all | |
| 107 | + | |
| 108 | + sudo service gitlab start | ... | ... |
| ... | ... | @@ -0,0 +1,99 @@ |
| 1 | +# From 3.1 to 4.0 | |
| 2 | + | |
| 3 | +## Important changes | |
| 4 | + | |
| 5 | +* Support for SQLite was dropped | |
| 6 | +* Support for gitolite 2 was dropped | |
| 7 | +* Projects are organized in namespaces | |
| 8 | +* The GitLab post-receive hook needs to be updated | |
| 9 | +* The configuration file needs to be updated | |
| 10 | +* Availability of `python2` executable | |
| 11 | + | |
| 12 | +Most of projects has post-receive file as symlink to gitolite `/home/git/.gitolite/hooks/post-receive`. | |
| 13 | +But some of them may have a real file. In this case you should rewrite it with symlink to gitolite hook. | |
| 14 | + | |
| 15 | +I wrote a bash script which will do it automatically for you. Just make sure all path inside is valid for you | |
| 16 | + | |
| 17 | +- - - | |
| 18 | + | |
| 19 | +### 1. Stop GitLab & Resque | |
| 20 | + | |
| 21 | + sudo service gitlab stop | |
| 22 | + | |
| 23 | +### 2. Update GitLab | |
| 24 | + | |
| 25 | +```bash | |
| 26 | + | |
| 27 | +# Get latest code | |
| 28 | +sudo -u gitlab -H git fetch | |
| 29 | +sudo -u gitlab -H git checkout 4-0-stable | |
| 30 | + | |
| 31 | +# Install gems for MySQL | |
| 32 | +sudo -u gitlab -H bundle install --without development test postgres | |
| 33 | + | |
| 34 | +# Update repos permissions | |
| 35 | +sudo chmod -R ug+rwXs /home/git/repositories/ | |
| 36 | +sudo chown -R git:git /home/git/repositories/ | |
| 37 | + | |
| 38 | +# Migrate db | |
| 39 | +sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production | |
| 40 | + | |
| 41 | +# Enable namespaces (**Warning!** All projects in groups will be moved to subdirectories) | |
| 42 | +sudo -u gitlab -H bundle exec rake gitlab:enable_namespaces RAILS_ENV=production | |
| 43 | + | |
| 44 | +``` | |
| 45 | + | |
| 46 | +### 3. Update post-receive hooks (Requires gitolite v3 ) | |
| 47 | + | |
| 48 | + | |
| 49 | +Step 1: Rewrite post-receive hook | |
| 50 | + | |
| 51 | +```bash | |
| 52 | +sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive | |
| 53 | +sudo chown git:git /home/git/.gitolite/hooks/common/post-receive | |
| 54 | +``` | |
| 55 | + | |
| 56 | +Step 2: Update project hooks to be symlinks to the Gitolite hook | |
| 57 | + | |
| 58 | +```bash | |
| 59 | +# 1. Check paths in script | |
| 60 | +sudo -u gitlab -H vim lib/support/rewrite-hooks.sh | |
| 61 | + | |
| 62 | +# 2. Run script | |
| 63 | +sudo -u git -H lib/support/rewrite-hooks.sh | |
| 64 | +``` | |
| 65 | + | |
| 66 | + | |
| 67 | +### 4. Replace config with new one | |
| 68 | + | |
| 69 | + | |
| 70 | + # backup old one | |
| 71 | + sudo -u gitlab -H cp config/gitlab.yml config/gitlab.yml.old | |
| 72 | + | |
| 73 | + # copy new one | |
| 74 | + sudo -u gitlab -H cp config/gitlab.yml.example config/gitlab.yml | |
| 75 | + | |
| 76 | + # edit it | |
| 77 | + sudo -u gitlab -H vim config/gitlab.yml | |
| 78 | + | |
| 79 | + | |
| 80 | +### 5. Disable ssh known_host check for own domain | |
| 81 | + | |
| 82 | + | |
| 83 | + echo "Host localhost | |
| 84 | + StrictHostKeyChecking no | |
| 85 | + UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config | |
| 86 | + | |
| 87 | + echo "Host YOUR_DOMAIN_NAME | |
| 88 | + StrictHostKeyChecking no | |
| 89 | + UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config | |
| 90 | + | |
| 91 | + | |
| 92 | +### 6. Check GitLab's status | |
| 93 | + | |
| 94 | + sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production | |
| 95 | + | |
| 96 | + | |
| 97 | +### 7. Start GitLab & Resque | |
| 98 | + | |
| 99 | + sudo service gitlab start | ... | ... |
| ... | ... | @@ -0,0 +1,55 @@ |
| 1 | +# From 4.0 to 4.1 | |
| 2 | + | |
| 3 | +## Important changes | |
| 4 | + | |
| 5 | +* Resque replaced with Sidekiq | |
| 6 | +* New options for configuration file added | |
| 7 | +* Init.d script should be updated | |
| 8 | +* __requires ruby1.9.3-p327__ | |
| 9 | + | |
| 10 | +- - - | |
| 11 | + | |
| 12 | +### 1. Stop GitLab & Resque | |
| 13 | + | |
| 14 | + sudo service gitlab stop | |
| 15 | + | |
| 16 | +### 2. Update GitLab | |
| 17 | + | |
| 18 | +```bash | |
| 19 | + | |
| 20 | +# Get latest code | |
| 21 | +sudo -u gitlab -H git fetch | |
| 22 | +sudo -u gitlab -H git checkout 4-1-stable | |
| 23 | + | |
| 24 | +# Install gems for MySQL | |
| 25 | +sudo -u gitlab -H bundle install --without development test postgres | |
| 26 | + | |
| 27 | +# Migrate db | |
| 28 | +sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production | |
| 29 | + | |
| 30 | +``` | |
| 31 | + | |
| 32 | +### 3. Replace init.d script with a new one | |
| 33 | + | |
| 34 | +``` | |
| 35 | +# backup old one | |
| 36 | +sudo mv /etc/init.d/gitlab /etc/init.d/gitlab.old | |
| 37 | + | |
| 38 | +# get new one usign sidekiq | |
| 39 | +sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/init.d/gitlab | |
| 40 | +sudo chmod +x /etc/init.d/gitlab | |
| 41 | + | |
| 42 | +``` | |
| 43 | + | |
| 44 | +### 4. Check GitLab's status | |
| 45 | + | |
| 46 | + sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production | |
| 47 | + | |
| 48 | + | |
| 49 | +### 5. Start GitLab & Sidekiq | |
| 50 | + | |
| 51 | + sudo service gitlab start | |
| 52 | + | |
| 53 | +### 6. Remove old init.d script | |
| 54 | + | |
| 55 | + sudo rm /etc/init.d/gitlab.old | ... | ... |
| ... | ... | @@ -0,0 +1,34 @@ |
| 1 | +# From 4.1 to 4.2 | |
| 2 | + | |
| 3 | +### 1. Stop server & resque | |
| 4 | + | |
| 5 | + sudo service gitlab stop | |
| 6 | + | |
| 7 | +### 2. Update code & db | |
| 8 | + | |
| 9 | +```bash | |
| 10 | +# Get latest code | |
| 11 | +sudo -u gitlab git fetch | |
| 12 | + | |
| 13 | +sudo -u gitlab git checkout 4-2-stable | |
| 14 | + | |
| 15 | +# Install libs | |
| 16 | +sudo -u gitlab bundle install --without development test postgres --deployment | |
| 17 | + | |
| 18 | +# update db | |
| 19 | +sudo -u gitlab bundle exec rake db:migrate RAILS_ENV=production | |
| 20 | + | |
| 21 | +``` | |
| 22 | + | |
| 23 | + | |
| 24 | +### 3. Check GitLab's status | |
| 25 | + | |
| 26 | +```bash | |
| 27 | +sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production | |
| 28 | +``` | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | +### 4. Start all | |
| 33 | + | |
| 34 | + sudo service gitlab start | ... | ... |