lib/release_tools/public_release/gitaly_monthly_release.rb (49 lines of code) (raw):

# frozen_string_literal: true module ReleaseTools module PublicRelease # A monhtly release of Gitaly using the API. # # This class is only concerned with monthly releases. If a release from the # `master` branch needs to be created, use `GitalyMasterRelease` instead. class GitalyMonthlyRelease include Release include GitalyRelease attr_reader :version, :client, :release_metadata def initialize( version, client: GitlabClient, release_metadata: ReleaseMetadata.new, commit: nil ) @version = version.to_ce @client = client @release_metadata = release_metadata @commit = commit end def execute logger.info('Starting release of Gitaly', version: version) create_target_branch return if SharedStatus.dry_run? compile_changelog update_versions tag = create_tag add_release_metadata(tag) notify_slack(project, version) end def compile_changelog return if version.rc? logger.info('Compiling changelog', project: project_path) ChangelogCompiler .new(project_path, client: client) .compile(version, branch: target_branch) end def source_for_target_branch if @commit logger.info('Using specific commit', project: project_path, commit: @commit) end @commit || super end def ee_project_path Project::GitlabEe.canonical_or_security_path end def ce_project_path Project::GitlabCe.canonical_or_security_path end end end end