Sha256: 3d39e522e67eb15b2b8d3adef4609082751eb20fbf403152d669e3341aa14081
Contents?: true
Size: 1.6 KB
Versions: 26
Compression:
Stored size: 1.6 KB
Contents
# frozen_string_literal: true module Groundskeeper # Wraps Sentry CLI executable. class Sentry COMMAND = "sentry-cli" SENTRY_AUTH_TOKEN = "SENTRY_AUTH_TOKEN" SENTRY_ORG = "SENTRY_ORG" # sentry-cli arguments RELEASE = "releases new -p %<project>s \"%<version>s\"" ASSOCIATE = "releases set-commits --auto \"%<version>s\"" DEPLOY = "releases deploys \"%<version>s\" new -e %<environment>s" attr_reader :sentry, :project_name, :version_prefix def self.build(project_name:, version_prefix:) new( sentry: Executable.new(COMMAND), project_name: project_name, version_prefix: version_prefix ) end def initialize(sentry:, project_name:, version_prefix:) @sentry = sentry @project_name = project_name @version_prefix = version_prefix end # Notify Sentry about release def create_release(version) sentry.execute(format(RELEASE, project: project_name, version: version_name(version))) end # Associate commits with the release def associate_commits(version) sentry.execute(format(ASSOCIATE, version: version_name(version))) end # Announce deployment to an environment def deploy(version, environment) sentry.execute(format(DEPLOY, version: version_name(version), environment: environment)) end def version_name(version) "#{version_prefix} #{version}" end def credentials? ENV[SENTRY_AUTH_TOKEN].present? && ENV[SENTRY_ORG].present? end end end
Version data entries
26 entries across 26 versions & 1 rubygems