lib/release_tools/public_release/gitaly_master_release.rb (37 lines of code) (raw):
# frozen_string_literal: true
module ReleaseTools
module PublicRelease
# A release of Gitaly from the `master` branch, using the API.
#
# The code for a default branch release is separate to ensure we don't
# accidentally run the wrong kind of code for a release. For example,
# mixing this code with the code for a monthly release could result in
# monthly release related code running for a default branch release, even
# when not desired.
class GitalyMasterRelease
include Release
include GitalyRelease
attr_reader :version, :client, :release_metadata
def initialize(
version,
client: GitlabClient,
release_metadata: ReleaseMetadata.new
)
unless version.rc?
raise(
ArgumentError,
'Releasing Gitaly from the default branch requires an RC version'
)
end
@version = version.to_ce
@client = client
@release_metadata = release_metadata
end
def execute
logger.info(
'Starting release of Gitaly from the default branch',
version: version
)
update_versions
tag = create_tag
add_release_metadata(tag)
notify_slack(project, version)
end
def target_branch
Project::Gitaly.default_branch
end
end
end
end