groundskeeper-bitcore 0.18.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/deploy.rb +1 -1
- data/config/git_config.rb +4 -1
- data/groundskeeper.gemspec +6 -6
- data/lib/groundskeeper/application.rb +1 -0
- data/lib/groundskeeper/commands.rb +37 -20
- data/lib/groundskeeper/jira.rb +16 -1
- data/lib/groundskeeper/version.rb +1 -1
- metadata +20 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d4f46740d1ddb1bae4d6bc8992e3b35ac04e4eb2f150344b792509d476d7bb0
|
4
|
+
data.tar.gz: ca464350273ce97cbfe8397129bf741eb1d75c0df36f046caa4746f418b8c24a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6626ba1e74879f74aa3afb5f71542e2078fca42c824849451d7e798f6c892bd163d7de4ef416224ae3c53a4bb160c69fb6baef51b0af5639576a2128dca909e6
|
7
|
+
data.tar.gz: 656fea63b23a3c28320cc43e80c7fe3c65f5e6a5e97bf9783172bf8d57786c47197a854e6ef0941f3eb2b9e2a70e591de16d40a841a79edf48aa1699e434d3bb
|
data/config/deploy.rb
CHANGED
@@ -37,7 +37,7 @@ set :shared_files, fetch(:shared_files, []).push(
|
|
37
37
|
|
38
38
|
# Each deploy, these directories will be checked for changes. If changes are
|
39
39
|
# detected, assets will be precompiled. Otherwise that step will be skipped.
|
40
|
-
set :asset_dirs, ["app/javascript/"]
|
40
|
+
set :asset_dirs, ["app/javascript/", "app/packs/"]
|
41
41
|
|
42
42
|
# This task is the environment that is loaded for all remote run commands, such
|
43
43
|
# as `mina deploy` or `mina rake`.
|
data/config/git_config.rb
CHANGED
@@ -2,7 +2,10 @@
|
|
2
2
|
|
3
3
|
require "yaml"
|
4
4
|
require "json"
|
5
|
-
require "groundskeeper"
|
5
|
+
require "groundskeeper/project"
|
6
|
+
require "groundskeeper/document"
|
7
|
+
require "groundskeeper/git"
|
8
|
+
require "groundskeeper/executable"
|
6
9
|
|
7
10
|
desc "Sets up project details."
|
8
11
|
# rubocop:disable Metrics/BlockLength
|
data/groundskeeper.gemspec
CHANGED
@@ -7,13 +7,12 @@ require "groundskeeper/version"
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = "groundskeeper-bitcore"
|
9
9
|
spec.version = Groundskeeper::VERSION
|
10
|
-
spec.authors = ["
|
11
|
-
spec.email = ["
|
10
|
+
spec.authors = ["RADD"]
|
11
|
+
spec.email = ["radd@northwestern.edu"]
|
12
12
|
|
13
13
|
spec.summary = "A gem for managing releases and deployments."
|
14
|
-
spec.homepage = "https://
|
14
|
+
spec.homepage = "https://bitbucket.org/isgmh-radd/groundskeeper/src/master/"
|
15
15
|
spec.license = "MIT"
|
16
|
-
spec.cert_chain = ["certs/ericcf.pem"]
|
17
16
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
18
17
|
# 'allowed_push_host' to allow pushing to a single host or delete this
|
19
18
|
# section to allow pushing to any host.
|
@@ -31,15 +30,16 @@ Gem::Specification.new do |spec|
|
|
31
30
|
spec.executables = "ground"
|
32
31
|
spec.require_paths = %w[lib config]
|
33
32
|
|
33
|
+
spec.required_ruby_version = ">= 2.4"
|
34
34
|
spec.add_dependency "jira-ruby", "~> 2.0"
|
35
35
|
spec.add_dependency "mina", "~> 1.2"
|
36
36
|
spec.add_dependency "mina-whenever", "~> 1.0.1"
|
37
37
|
spec.add_dependency "thor", "~> 1.0"
|
38
38
|
|
39
39
|
spec.add_development_dependency "bundler", "~> 2.0"
|
40
|
-
spec.add_development_dependency "byebug"
|
40
|
+
spec.add_development_dependency "byebug", "~> 11.1"
|
41
41
|
spec.add_development_dependency "minitest", "~> 5.0"
|
42
42
|
spec.add_development_dependency "rubocop", "~> 0.63"
|
43
|
-
spec.add_development_dependency "rubocop-performance"
|
43
|
+
spec.add_development_dependency "rubocop-performance", "~> 1.12"
|
44
44
|
spec.add_development_dependency "simplecov", "~> 0.14"
|
45
45
|
end
|
@@ -95,7 +95,7 @@ module Groundskeeper
|
|
95
95
|
# rubocop:disable Metrics/MethodLength,Metrics/AbcSize
|
96
96
|
def info(options = {})
|
97
97
|
return unrecognized_version unless version_file.exists?
|
98
|
-
return unless check_groundskeeper_version
|
98
|
+
return groundskeeper_outdated unless check_groundskeeper_version
|
99
99
|
|
100
100
|
Executable.verbose = options[:verbose]
|
101
101
|
pull_project_details
|
@@ -114,13 +114,12 @@ module Groundskeeper
|
|
114
114
|
# rubocop:enable Metrics/AbcSize
|
115
115
|
|
116
116
|
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity,
|
117
|
-
# rubocop:disable Metrics/PerceivedComplexity
|
118
117
|
def release(options = {})
|
119
118
|
is_initial_release = !version_file.exists?
|
120
119
|
|
121
120
|
return missing_jira_credentials unless jira.credentials?
|
122
121
|
return missing_bitbucket_credentials unless bitbucket.credentials?
|
123
|
-
return unless check_groundskeeper_version
|
122
|
+
return groundskeeper_outdated unless check_groundskeeper_version
|
124
123
|
return unrecognized_version unless version_file.rails?
|
125
124
|
|
126
125
|
version_file.create_initial_version! unless version_file.exists?
|
@@ -139,12 +138,12 @@ module Groundskeeper
|
|
139
138
|
create_pr
|
140
139
|
end
|
141
140
|
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
142
|
-
# rubocop:enable Metrics/MethodLength
|
141
|
+
# rubocop:enable Metrics/MethodLength
|
143
142
|
|
144
143
|
# :nocov:
|
145
144
|
def predeploy(options = {})
|
146
145
|
return unrecognized_version unless version_file.exists?
|
147
|
-
return unless check_groundskeeper_version
|
146
|
+
return groundskeeper_outdated unless check_groundskeeper_version
|
148
147
|
|
149
148
|
Executable.verbose = options[:verbose]
|
150
149
|
pull_project_details
|
@@ -161,7 +160,7 @@ module Groundskeeper
|
|
161
160
|
return missing_jira_credentials unless jira.credentials?
|
162
161
|
return missing_sentry_credentials unless sentry.credentials?
|
163
162
|
return missing_slack_credentials unless slack.credentials?
|
164
|
-
return unless check_groundskeeper_version
|
163
|
+
return groundskeeper_outdated unless check_groundskeeper_version
|
165
164
|
return unable_to_ssh unless ssh.can_connect?
|
166
165
|
|
167
166
|
Executable.verbose = options[:verbose]
|
@@ -205,7 +204,6 @@ module Groundskeeper
|
|
205
204
|
end
|
206
205
|
end
|
207
206
|
|
208
|
-
# rubocop:disable Metrics/MethodLength
|
209
207
|
def check_groundskeeper_version
|
210
208
|
@check_groundskeeper_version ||= begin
|
211
209
|
console.say("Groundskeeper version #{Groundskeeper::VERSION}\n\n",
|
@@ -214,19 +212,24 @@ module Groundskeeper
|
|
214
212
|
|
215
213
|
return true unless SemanticVersion.new(latest_version) > VERSION
|
216
214
|
|
217
|
-
|
218
|
-
Groundskeeper is outdated,
|
219
|
-
would you like the latest version installed?
|
220
|
-
TEXT
|
221
|
-
|
222
|
-
response = console.ask(question, :red, limited_to: %w[yes no])
|
223
|
-
|
224
|
-
return true if response == "no"
|
215
|
+
return false unless install_latest_groundskeeper?
|
225
216
|
|
226
217
|
console.run("gem install groundskeeper-bitcore")
|
218
|
+
|
219
|
+
true
|
227
220
|
end
|
228
221
|
end
|
229
|
-
|
222
|
+
|
223
|
+
# :nocov:
|
224
|
+
def install_latest_groundskeeper?
|
225
|
+
question = <<~TEXT.squish
|
226
|
+
Groundskeeper is outdated,
|
227
|
+
would you like the latest version installed?
|
228
|
+
TEXT
|
229
|
+
|
230
|
+
console.ask(question, :red, limited_to: %w[yes no]) == "yes"
|
231
|
+
end
|
232
|
+
# :nocov:
|
230
233
|
|
231
234
|
def announce_latest_tag
|
232
235
|
console.say(
|
@@ -285,8 +288,14 @@ module Groundskeeper
|
|
285
288
|
|
286
289
|
def add_version_to_jira_issues
|
287
290
|
issue_ids = jira.included_issues(recent_commits)
|
288
|
-
jira.add_version_to_remote_issues(
|
289
|
-
|
291
|
+
message = jira.add_version_to_remote_issues(
|
292
|
+
next_jira_version_name, issue_ids
|
293
|
+
)
|
294
|
+
if message.blank?
|
295
|
+
console.say("# added version to Jira issues #{issue_ids}", :green)
|
296
|
+
else
|
297
|
+
announce_error(message)
|
298
|
+
end
|
290
299
|
end
|
291
300
|
|
292
301
|
def create_pr
|
@@ -311,6 +320,10 @@ module Groundskeeper
|
|
311
320
|
tag.nil? ? false : git.list_tags.include?(tag)
|
312
321
|
end
|
313
322
|
|
323
|
+
def announce_error(message)
|
324
|
+
console.say("# #{message}", :red)
|
325
|
+
end
|
326
|
+
|
314
327
|
def unrecognized_tag
|
315
328
|
console.say(
|
316
329
|
"Tag not found, try again with an existing tag.",
|
@@ -325,6 +338,10 @@ module Groundskeeper
|
|
325
338
|
)
|
326
339
|
end
|
327
340
|
|
341
|
+
def groundskeeper_outdated
|
342
|
+
console.say("Groundskeeper outdated. Install the latest version.", :red)
|
343
|
+
end
|
344
|
+
|
328
345
|
def missing_bitbucket_credentials
|
329
346
|
console.say(
|
330
347
|
"Please configure your Bitbucket environment variables.",
|
@@ -377,7 +394,7 @@ module Groundskeeper
|
|
377
394
|
end
|
378
395
|
end
|
379
396
|
|
380
|
-
# rubocop:disable Metrics/MethodLength
|
397
|
+
# rubocop:disable Metrics/MethodLength
|
381
398
|
def update_deployed_issues
|
382
399
|
tries = 0
|
383
400
|
|
@@ -406,7 +423,7 @@ module Groundskeeper
|
|
406
423
|
# :nocov:
|
407
424
|
end
|
408
425
|
end
|
409
|
-
# rubocop:enable Metrics/MethodLength
|
426
|
+
# rubocop:enable Metrics/MethodLength
|
410
427
|
|
411
428
|
# :nocov:
|
412
429
|
def release_version
|
data/lib/groundskeeper/jira.rb
CHANGED
@@ -4,6 +4,8 @@ require "cgi"
|
|
4
4
|
require "date"
|
5
5
|
require "jira-ruby"
|
6
6
|
|
7
|
+
class IssueNotFoundError < StandardError; end
|
8
|
+
|
7
9
|
module Groundskeeper
|
8
10
|
# Wraps an interface to Jira.
|
9
11
|
class Jira
|
@@ -46,6 +48,8 @@ module Groundskeeper
|
|
46
48
|
|
47
49
|
# :nocov:
|
48
50
|
def add_version_to_issue(issue_id:, version_name:)
|
51
|
+
raise IssueNotFoundError if client.Issue.find(issue_id).nil?
|
52
|
+
|
49
53
|
client.Issue
|
50
54
|
.find(issue_id)
|
51
55
|
.save(update: { fixVersions: [{ add: { name: version_name } }] })
|
@@ -120,11 +124,22 @@ module Groundskeeper
|
|
120
124
|
client.create_version(name: name, prefix: prefix)
|
121
125
|
end
|
122
126
|
|
127
|
+
# rubocop:disable Metrics/MethodLength
|
123
128
|
def add_version_to_remote_issues(name, issue_ids)
|
129
|
+
failed_issues = []
|
124
130
|
issue_ids.each do |issue_id|
|
125
|
-
|
131
|
+
begin
|
132
|
+
client.add_version_to_issue(issue_id: issue_id, version_name: name)
|
133
|
+
rescue IssueNotFoundError
|
134
|
+
failed_issues << issue_id
|
135
|
+
next
|
136
|
+
end
|
126
137
|
end
|
138
|
+
return "" unless failed_issues.count.positive?
|
139
|
+
|
140
|
+
"Jira issue(s) not found, is #{failed_issues.join(', ')} correct?"
|
127
141
|
end
|
142
|
+
# rubocop:enable Metrics/MethodLength
|
128
143
|
|
129
144
|
def transition_remote_issues(transition_type, issue_ids)
|
130
145
|
issue_ids.each do |issue_id|
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groundskeeper-bitcore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- RADD
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
date: 2020-06-05 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-12-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: jira-ruby
|
@@ -85,16 +84,16 @@ dependencies:
|
|
85
84
|
name: byebug
|
86
85
|
requirement: !ruby/object:Gem::Requirement
|
87
86
|
requirements:
|
88
|
-
- - "
|
87
|
+
- - "~>"
|
89
88
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
89
|
+
version: '11.1'
|
91
90
|
type: :development
|
92
91
|
prerelease: false
|
93
92
|
version_requirements: !ruby/object:Gem::Requirement
|
94
93
|
requirements:
|
95
|
-
- - "
|
94
|
+
- - "~>"
|
96
95
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
96
|
+
version: '11.1'
|
98
97
|
- !ruby/object:Gem::Dependency
|
99
98
|
name: minitest
|
100
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,16 +126,16 @@ dependencies:
|
|
127
126
|
name: rubocop-performance
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
129
128
|
requirements:
|
130
|
-
- - "
|
129
|
+
- - "~>"
|
131
130
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
131
|
+
version: '1.12'
|
133
132
|
type: :development
|
134
133
|
prerelease: false
|
135
134
|
version_requirements: !ruby/object:Gem::Requirement
|
136
135
|
requirements:
|
137
|
-
- - "
|
136
|
+
- - "~>"
|
138
137
|
- !ruby/object:Gem::Version
|
139
|
-
version: '
|
138
|
+
version: '1.12'
|
140
139
|
- !ruby/object:Gem::Dependency
|
141
140
|
name: simplecov
|
142
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,9 +150,9 @@ dependencies:
|
|
151
150
|
- - "~>"
|
152
151
|
- !ruby/object:Gem::Version
|
153
152
|
version: '0.14'
|
154
|
-
description:
|
153
|
+
description:
|
155
154
|
email:
|
156
|
-
-
|
155
|
+
- radd@northwestern.edu
|
157
156
|
executables:
|
158
157
|
- ground
|
159
158
|
extensions: []
|
@@ -203,12 +202,12 @@ files:
|
|
203
202
|
- lib/groundskeeper/string_utils.rb
|
204
203
|
- lib/groundskeeper/version.rb
|
205
204
|
- lib/groundskeeper/website.rb
|
206
|
-
homepage: https://
|
205
|
+
homepage: https://bitbucket.org/isgmh-radd/groundskeeper/src/master/
|
207
206
|
licenses:
|
208
207
|
- MIT
|
209
208
|
metadata:
|
210
209
|
allowed_push_host: https://rubygems.org
|
211
|
-
post_install_message:
|
210
|
+
post_install_message:
|
212
211
|
rdoc_options: []
|
213
212
|
require_paths:
|
214
213
|
- lib
|
@@ -217,15 +216,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
216
|
requirements:
|
218
217
|
- - ">="
|
219
218
|
- !ruby/object:Gem::Version
|
220
|
-
version: '
|
219
|
+
version: '2.4'
|
221
220
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
221
|
requirements:
|
223
222
|
- - ">="
|
224
223
|
- !ruby/object:Gem::Version
|
225
224
|
version: '0'
|
226
225
|
requirements: []
|
227
|
-
rubygems_version: 3.
|
228
|
-
signing_key:
|
226
|
+
rubygems_version: 3.2.32
|
227
|
+
signing_key:
|
229
228
|
specification_version: 4
|
230
229
|
summary: A gem for managing releases and deployments.
|
231
230
|
test_files: []
|