groundskeeper-bitcore 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +6 -0
- data/lib/groundskeeper/application.rb +7 -6
- data/lib/groundskeeper/commands.rb +19 -8
- data/lib/groundskeeper/executable.rb +27 -0
- data/lib/groundskeeper/git.rb +1 -8
- data/lib/groundskeeper/git_hub.rb +1 -8
- data/lib/groundskeeper/jira.rb +15 -0
- data/lib/groundskeeper/sentry.rb +1 -8
- data/lib/groundskeeper/version.rb +1 -1
- data/lib/groundskeeper.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79fab46f840dcb22b53fc55e4cdc362e77f393e3
|
4
|
+
data.tar.gz: bf56a82bf703d2148ec68ba65e45fad8a69f0a9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1d1fe310cef1e8f3df71cc2c93af055c9e490456ef43eac0a322a47f384e3c04fbc435910fd8c5d8e72bdebb4ae219e0686eeb79180333c2b51b5225c034730
|
7
|
+
data.tar.gz: 012d6f338c90a6fed4ed6f0a8abb9ad1ddf8171c3a40d88e69169fe5b4c0ef73130da7c86163e4eee47cf8c7543bfedd1e204dfdc8a7739abe1c9b97e6fc9164
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.3.3 - 2018-11-16
|
4
|
+
|
5
|
+
* GROUN-17 should mark versions released in Jira after deploying to production (#83)
|
6
|
+
* GROUN-14 Add verbose flag (#82)
|
7
|
+
* GROUN-6 fix: fail elegantly if no tag is specified (#81)
|
8
|
+
|
3
9
|
## 0.3.2 - 2018-11-14
|
4
10
|
|
5
11
|
* GROUN-2 create the initial release of a Rails application (#80)
|
@@ -8,7 +8,8 @@ module Groundskeeper
|
|
8
8
|
attr_reader :commands
|
9
9
|
|
10
10
|
class_option :simulate, desc: "Simulate mina"
|
11
|
-
class_option :verbose, desc: "Run
|
11
|
+
class_option :verbose, desc: "Run groundskeeper verbosely", aliases: :v,
|
12
|
+
type: :boolean
|
12
13
|
|
13
14
|
def initialize(args = [], local_options = {}, config = {})
|
14
15
|
@commands = Commands.build(self)
|
@@ -17,19 +18,19 @@ module Groundskeeper
|
|
17
18
|
|
18
19
|
desc "info", "Display revision info"
|
19
20
|
def info
|
20
|
-
commands.info
|
21
|
+
commands.info options
|
21
22
|
end
|
22
23
|
|
23
24
|
desc "release", "create a new release"
|
24
25
|
def release
|
25
|
-
commands.info
|
26
|
-
commands.release
|
26
|
+
commands.info options
|
27
|
+
commands.release options
|
27
28
|
end
|
28
29
|
|
29
30
|
# :nocov:
|
30
31
|
desc "predeploy", "create configuration files for the project"
|
31
32
|
def predeploy
|
32
|
-
commands.info
|
33
|
+
commands.info options
|
33
34
|
commands.predeploy options
|
34
35
|
end
|
35
36
|
# :nocov:
|
@@ -37,7 +38,7 @@ module Groundskeeper
|
|
37
38
|
# :nocov:
|
38
39
|
desc "deploy", "deploy the latest release"
|
39
40
|
def deploy
|
40
|
-
commands.info
|
41
|
+
commands.info options
|
41
42
|
commands.deploy options
|
42
43
|
end
|
43
44
|
# :nocov:
|
@@ -86,9 +86,10 @@ module Groundskeeper
|
|
86
86
|
# rubocop:enable Metrics/MethodLength,Metrics/ParameterLists
|
87
87
|
|
88
88
|
# rubocop:disable Metrics/MethodLength,Metrics/AbcSize
|
89
|
-
def info
|
89
|
+
def info(options = {})
|
90
90
|
return unrecognized_version unless version_file.exists?
|
91
91
|
return unless check_groundskeeper_version
|
92
|
+
Executable.verbose = options[:verbose]
|
92
93
|
pull_project_details
|
93
94
|
|
94
95
|
announce_latest_tag
|
@@ -105,13 +106,14 @@ module Groundskeeper
|
|
105
106
|
# rubocop:enable Metrics/AbcSize
|
106
107
|
|
107
108
|
# rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity
|
108
|
-
def release
|
109
|
+
def release(options = {})
|
109
110
|
is_initial_release = !version_file.exists?
|
110
111
|
|
111
112
|
return missing_jira_credentials unless jira.credentials?
|
112
113
|
return unless check_groundskeeper_version
|
113
114
|
return unrecognized_version unless version_file.rails?
|
114
115
|
version_file.create_initial_version! unless version_file.exists?
|
116
|
+
Executable.verbose = options[:verbose]
|
115
117
|
pull_project_details
|
116
118
|
|
117
119
|
summarize_recent_commits unless is_initial_release
|
@@ -129,31 +131,35 @@ module Groundskeeper
|
|
129
131
|
# rubocop:enable Metrics/MethodLength
|
130
132
|
|
131
133
|
# :nocov:
|
132
|
-
def predeploy(options)
|
134
|
+
def predeploy(options = {})
|
133
135
|
return unrecognized_version unless version_file.exists?
|
134
136
|
return unless check_groundskeeper_version
|
137
|
+
Executable.verbose = options[:verbose]
|
135
138
|
pull_project_details
|
136
139
|
|
137
140
|
mina "predeploy", options
|
138
141
|
end
|
139
142
|
# :nocov:
|
140
143
|
|
141
|
-
# rubocop:disable Metrics/AbcSize
|
142
|
-
|
144
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
145
|
+
# rubocop:disable Metrics/MethodLength
|
146
|
+
def deploy(options = {})
|
143
147
|
return unrecognized_version unless version_file.exists?
|
144
148
|
return unrecognized_tag unless tag_present_in_git?(ENV[TAG])
|
145
149
|
return missing_jira_credentials unless jira.credentials?
|
146
150
|
return unless check_groundskeeper_version
|
151
|
+
Executable.verbose = options[:verbose]
|
147
152
|
pull_project_details
|
148
|
-
|
149
153
|
ENV["whenever"] = "1" if project.uses_whenever?
|
150
154
|
|
151
155
|
mina "deploy", options
|
152
156
|
announce_step "Wait for deployed application to restart"
|
153
157
|
update_deployed_issues
|
158
|
+
release_version if self.class.stage == PRODUCTION
|
154
159
|
add_version_to_sentry
|
155
160
|
end
|
156
|
-
# rubocop:enable Metrics/AbcSize
|
161
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
162
|
+
# rubocop:enable Metrics/MethodLength
|
157
163
|
|
158
164
|
private
|
159
165
|
|
@@ -300,7 +306,7 @@ module Groundskeeper
|
|
300
306
|
end
|
301
307
|
|
302
308
|
def tag_present_in_git?(tag)
|
303
|
-
git.list_tags.include?
|
309
|
+
tag.nil? ? false : git.list_tags.include?(tag)
|
304
310
|
end
|
305
311
|
|
306
312
|
def unrecognized_tag
|
@@ -363,6 +369,11 @@ module Groundskeeper
|
|
363
369
|
end
|
364
370
|
end
|
365
371
|
|
372
|
+
def release_version
|
373
|
+
jira.release_version(project, website.version)
|
374
|
+
console.say("#{project.repo_name} #{website.version} released", :green)
|
375
|
+
end
|
376
|
+
|
366
377
|
def transition_remote_issues(version)
|
367
378
|
version_name = "#{repository.name} #{version}"
|
368
379
|
deployed_issues = jira.fetch_issues_by_fix_version(version_name)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Groundskeeper
|
4
|
+
# Class to execute commands for other classes
|
5
|
+
class Executable
|
6
|
+
attr_reader :command
|
7
|
+
|
8
|
+
@verbose = false
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_writer :verbose
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
attr_reader :verbose
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(command)
|
19
|
+
@command = command
|
20
|
+
end
|
21
|
+
|
22
|
+
def execute(arguments)
|
23
|
+
puts "#{command} #{arguments}" if self.class.verbose
|
24
|
+
`#{command} #{arguments}`
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/groundskeeper/git.rb
CHANGED
@@ -24,15 +24,8 @@ module Groundskeeper
|
|
24
24
|
|
25
25
|
attr_reader :git
|
26
26
|
|
27
|
-
# Wraps the "git" shell command.
|
28
|
-
class Executable
|
29
|
-
def execute(arguments)
|
30
|
-
`#{COMMAND} #{arguments}`
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
27
|
def self.build
|
35
|
-
new Executable.new
|
28
|
+
new Executable.new(COMMAND)
|
36
29
|
end
|
37
30
|
|
38
31
|
def initialize(git)
|
@@ -8,16 +8,9 @@ module Groundskeeper
|
|
8
8
|
COMMAND = "open"
|
9
9
|
URL_BASE = "https://github.com/"
|
10
10
|
|
11
|
-
# Wraps the "open" shell command.
|
12
|
-
class Executable
|
13
|
-
def execute(arguments)
|
14
|
-
`#{COMMAND} #{arguments}`
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
11
|
def self.build(username:, repository_name:)
|
19
12
|
new(
|
20
|
-
opener: Executable.new,
|
13
|
+
opener: Executable.new(COMMAND),
|
21
14
|
username: username,
|
22
15
|
repository_name: repository_name
|
23
16
|
)
|
data/lib/groundskeeper/jira.rb
CHANGED
@@ -71,6 +71,17 @@ module Groundskeeper
|
|
71
71
|
JSON.parse(response)["issues"].map { |issue| issue["key"] }
|
72
72
|
end
|
73
73
|
# :nocov:
|
74
|
+
|
75
|
+
# :nocov:
|
76
|
+
def release_version(project:, version:)
|
77
|
+
version_name = "#{project.repo_name} #{version}"
|
78
|
+
client.Project
|
79
|
+
.find(project.jira_prefix)
|
80
|
+
.versions
|
81
|
+
.find { |element| element.name == version_name }
|
82
|
+
.save(released: true)
|
83
|
+
end
|
84
|
+
# :nocov:
|
74
85
|
end
|
75
86
|
|
76
87
|
def self.build(prefix)
|
@@ -126,5 +137,9 @@ module Groundskeeper
|
|
126
137
|
client.fetch_issues_by_fix_version(version: version)
|
127
138
|
end
|
128
139
|
# :nocov:
|
140
|
+
|
141
|
+
def release_version(project, version)
|
142
|
+
client.release_version(project: project, version: version)
|
143
|
+
end
|
129
144
|
end
|
130
145
|
end
|
data/lib/groundskeeper/sentry.rb
CHANGED
@@ -11,16 +11,9 @@ module Groundskeeper
|
|
11
11
|
|
12
12
|
attr_reader :sentry, :project_name, :version_prefix
|
13
13
|
|
14
|
-
# Wraps the "sentry-cli" shell command.
|
15
|
-
class Executable
|
16
|
-
def execute(arguments)
|
17
|
-
`#{COMMAND} #{arguments}`
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
14
|
def self.build(project_name:, version_prefix:)
|
22
15
|
new(
|
23
|
-
sentry: Executable.new,
|
16
|
+
sentry: Executable.new(COMMAND),
|
24
17
|
project_name: project_name,
|
25
18
|
version_prefix: version_prefix
|
26
19
|
)
|
data/lib/groundskeeper.rb
CHANGED
@@ -4,6 +4,7 @@ require "groundskeeper/application"
|
|
4
4
|
require "groundskeeper/changelog"
|
5
5
|
require "groundskeeper/commands"
|
6
6
|
require "groundskeeper/document"
|
7
|
+
require "groundskeeper/executable"
|
7
8
|
require "groundskeeper/git"
|
8
9
|
require "groundskeeper/git_hub"
|
9
10
|
require "groundskeeper/jira"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groundskeeper-bitcore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BIT Core
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- certs/ericcf.pem
|
12
|
-
date: 2018-11-
|
12
|
+
date: 2018-11-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jira-ruby
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- lib/groundskeeper/changelog.rb
|
174
174
|
- lib/groundskeeper/commands.rb
|
175
175
|
- lib/groundskeeper/document.rb
|
176
|
+
- lib/groundskeeper/executable.rb
|
176
177
|
- lib/groundskeeper/git.rb
|
177
178
|
- lib/groundskeeper/git_hub.rb
|
178
179
|
- lib/groundskeeper/jira.rb
|