diff options
author | Warren Volz <warren@warrenvolz.com> | 2015-07-16 18:29:11 -0600 |
---|---|---|
committer | Warren Volz <warren@warrenvolz.com> | 2015-07-17 16:16:25 -0600 |
commit | 5f717e2f5c4abe9ff957e92b27f8f8ecf1c55727 (patch) | |
tree | ae863e524d947b9f559cd5d88e4e4ebec2ea38b6 /lib | |
parent | 90f5c4d0a3c9d5e43e9a58ab0aa79c8b085c62d4 (diff) | |
download | gitlab-ci-5f717e2f5c4abe9ff957e92b27f8f8ecf1c55727.tar.gz |
port version matching code in upgrader lib from gitlab
- fixes upgrader script not working with v7.1x versions
- rspec test cases from gitlab for upgrader lib
- rename gitlab to gitlabci
- use real data for gitlabci3 version check
Diffstat (limited to 'lib')
-rw-r--r-- | lib/upgrader.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/upgrader.rb b/lib/upgrader.rb index 3969fa2..b1599e2 100644 --- a/lib/upgrader.rb +++ b/lib/upgrader.rb @@ -41,7 +41,10 @@ class Upgrader end def latest_version_raw - last_tag = git_tags.last.match(/v\d\.\d\.\d/).to_s + git_tags = fetch_git_tags + git_tags = git_tags.select { |version| version =~ /v\d+\.\d+\.\d+\Z/ } + git_versions = git_tags.map { |tag| VersionInfo.parse(tag.match(/v\d+\.\d+\.\d+/).to_s) } + "v#{git_versions.sort.last.to_s}" end def update_commands @@ -90,8 +93,8 @@ class Upgrader answer end - def git_tags + def fetch_git_tags tags = `git ls-remote --tags origin | grep tags\/v#{current_version.major}` - tags.lines.to_a.select { |version| version =~ /v\d\.\d\.\d\Z/ } + tags.lines.to_a.select { |version| version =~ /v\d+\.\d+\.\d+\Z/ } end end |