class RemoteRelease
Attributes
options[R]
path[R]
Public Instance Methods
release()
click to toggle source
runs all the required steps to release the software currently this must be done manually by a release manager
# File lib/release_manager/remote_release.rb, line 11 def release begin unless auto_release? print "Have you merged your code? Did you fetch and rebase against the upstream? Want to continue (y/n)?: ".yellow answer = gets.downcase.chomp if answer == 'n' return false end print "Ready to release version #{version.next} to #{puppet_module.source}\n and forever change history(y/n)?: ".yellow answer = gets.downcase.chomp if answer != 'y' puts "Nah, forget it, this release wasn't that cool anyways.".yellow return false end end # updates the metadata.js file to the next version bump # updates the changelog to the next version based on the metadata file id = bump_log # tags the r10k-module with the version found in the metadata.json file tag(id) rescue Rugged::TagError => e logger.fatal(e.message) logger.fatal("You might need to rebase your branch") exit 1 end end
run()
click to toggle source
# File lib/release_manager/remote_release.rb, line 39 def run begin check_requirements exit 1 unless release logger.info "Releasing Version #{version} to #{puppet_module.source}" logger.info "Version #{version} has been released successfully" puts "This was a dry run so nothing actually happen".green if dry_run? exit 0 rescue Gitlab::Error::NotFound => e logger.fatal(e.message) logger.fatal("This probably means the user attached to the token does not have access") exit -1 rescue Gitlab::Error::MissingCredentials => e logger.fatal(e.message) exit -1 rescue Gitlab::Error::Forbidden => e logger.fatal(e.message) logger.fatal("You don't have access to modify the repository") exit -1 rescue AlreadyReleased => e logger.warn(e.message) exit 0 rescue TagExists => e logger.fatal(e.message) exit -1 rescue GitError logger.fatal "There was an issue when running a git command" rescue InvalidMetadataSource logger.fatal "The puppet module's metadata.json source field must be a git url: ie. git@someserver.com:devops/module.git" exit -1 rescue ModNotFoundException logger.fatal "Invalid module path for #{path}, is there a metadata.json file?" exit -1 end end