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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 |