lib/release_tools/omnibus_gitlab_version.rb (40 lines of code) (raw):
# frozen_string_literal: true
module ReleaseTools
class OmnibusGitlabVersion < Version
VERSION_REGEX = %r{
\A(?<major>\d+)
\.(?<minor>\d+)
(\.(?<patch>\d+))?
(\+)?
(?<rc>rc(?<rc_number>\d*))?
(\.)?
(?<edition>ce|ee)?
(\.\d+)?\z
}x
OMNIBUS_SINGLE_BRANCH_VERSION = ENV.fetch('OMNIBUS_SINGLE_BRANCH_VERSION', '12.3.0')
def ee?
edition == 'ee'
end
def to_ce
return self unless ee?
self.class.new(to_s.sub(/(\+|\.)ee/, '\1ce'))
end
def to_ee
return self if ee?
self.class.new(to_s.sub(/(\+|\.)ce/, '\1ee'))
end
def edition
@edition ||= extract_from_version(:edition, fallback: 'ce')
end
def tag
str = "#{to_patch}+"
str << "rc#{rc}." if rc?
str << (ee? ? 'ee' : 'ce')
str << '.0'
end
# For omnibus-gitlab, we have a single stable branch starting with
# version specified in the env variable OMNIBUS_SINGLE_BRANCH_VERSION.
# So, we are stripping off `-ee` suffix.
def stable_branch(ee: false)
super.tap do |branch|
branch.chomp!('-ee') if self >= ReleaseTools::Version.new(OMNIBUS_SINGLE_BRANCH_VERSION)
end
end
end
end