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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8aba462cf19e6cba7461724cdd192f643f0d174f4d6ae3f078759ac21103cb18
4
- data.tar.gz: 5586ffa52b9576701b6839166d951bdb9524d46252427b89d6858b0ab0eb2341
3
+ metadata.gz: 7d4f46740d1ddb1bae4d6bc8992e3b35ac04e4eb2f150344b792509d476d7bb0
4
+ data.tar.gz: ca464350273ce97cbfe8397129bf741eb1d75c0df36f046caa4746f418b8c24a
5
5
  SHA512:
6
- metadata.gz: 9dd9e1d9c8b91e8313dfc40e127a5630c2b0f048206dee4dad900f2c60c443afed3617679e47622d9c29035dbbc52436c25f8427c2ae5cb849b055dedc191b60
7
- data.tar.gz: 5de0587c1b110b9a0a4bb5ffa3f475c2ba5a08f8ff68077a24a9ff5a4db77e873316c83ababd9c0b5c547c41ca4ca02060ec72c271ced41fb966d9b7ddf0d9e5
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
@@ -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 = ["BIT Core"]
11
- spec.email = ["ericcf@northwestern.edu"]
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://github.com/NU-CBITS/groundskeeper.git"
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
@@ -5,6 +5,7 @@ require "thor"
5
5
  module Groundskeeper
6
6
  # Bootstrap this as a Thor application.
7
7
  class Application < Thor
8
+ include Thor::Actions
8
9
  attr_reader :commands
9
10
 
10
11
  class_option :simulate, desc: "Simulate mina"
@@ -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, Metrics/PerceivedComplexity
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
- question = <<~TEXT.squish
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
- # rubocop:enable Metrics/MethodLength
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(next_jira_version_name, issue_ids)
289
- console.say("# added version to Jira issues #{issue_ids}", :green)
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, Metrics/AbcSize
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, Metrics/AbcSize
426
+ # rubocop:enable Metrics/MethodLength
410
427
 
411
428
  # :nocov:
412
429
  def release_version
@@ -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
- client.add_version_to_issue(issue_id: issue_id, version_name: name)
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|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Groundskeeper
4
- VERSION = "0.18.0"
4
+ VERSION = "0.22.0"
5
5
  end
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.18.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
- - BIT Core
8
- autorequire:
7
+ - RADD
8
+ autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - certs/ericcf.pem
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: '0'
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: '0'
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: '0'
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: '0'
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
- - ericcf@northwestern.edu
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://github.com/NU-CBITS/groundskeeper.git
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: '0'
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.1.2
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: []