ソースからGitLabをインストールしている方が対象になります。
6.5系ぐらいからアップグレードを簡単にするため、アップグレードスクリプトができました。
このスクリプトを実行するば、自動でアップグレードされます
1 |
ruby lib/gitlab/upgrader.rb |
7.0系からアップグレードスクリプトの場所が変わりlibディレクトリ配下にあります。
7.2系へのアップグレード
先日リリースされた7.2系にアップグレードするには、cmake がインストールされていないとアップグレードできません。
アップグレードスクリプトを実行しても途中の bundle install でこけます。
なので cmake をインストールしましょう。
1 |
sudo yum install cmake |
しかし、cmakeをインストールしてアップグレードスクリプトを流すと、正常にアップグレードができません。
すでにGtiLab7.2になっているということでアップグレードされません。
(困った‥っていうか面倒くさい‥‥)
私の場合、アップグレードスクリプトではなく手動でアップグレードを行い無事アップグレードしました。
終わった後に気づいたのですが、git checkout で 7.2 以前のものに戻せば上手く行くはずです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
class Upgrader def execute puts "GitLab #{current_version.major} upgrade tool" puts "Your version is #{current_version}" puts "Latest available version for GitLab #{current_version.major} is #{latest_version}" if latest_version? puts "You are using the latest GitLab version" else puts "Newer GitLab version is available" answer = if ARGV.first == "-y" "yes" else prompt("Do you want to upgrade (yes/no)? ", %w{yes no}) end if answer == "yes" upgrade else exit 0 end end end def latest_version? current_version >= latest_version end def current_version @current_version ||= Gitlab::VersionInfo.parse(current_version_raw) end def latest_version @latest_version ||= Gitlab::VersionInfo.parse(latest_version_raw) end def current_version_raw File.read(File.join(gitlab_path, "VERSION")).strip end def latest_version_raw remote_tags, _ = Gitlab::Popen.popen(%W(git ls-remote --tags origin)) git_tags = remote_tags.split("\n").grep(/tags\/v#{current_version.major}/) git_tags = git_tags.select { |version| version =~ /v\d\.\d\.\d\Z/ } last_tag = git_tags.last.match(/v\d\.\d\.\d/).to_s end def update_commands { "Stash changed files" => %W(git stash), "Get latest code" => %W(git fetch), "Switch to new version" => %W(git checkout v#{latest_version}), "Install gems" => %W(bundle), "Migrate DB" => %W(bundle exec rake db:migrate), "Recompile assets" => %W(bundle exec rake assets:clean assets:precompile), "Clear cache" => %W(bundle exec rake cache:clear) } end |
アップデートスクリプトの一部ですが、latest_version_raw で最新のタグ情報を取得しています。
もしアップデートスクリプトが流れなくなった場合、git checkout を試してみてください。