ndr_dev_support 5.6.0 → 5.8.2

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: e945839e116f3076fe950ec01ddeb9a9442bfc1bf2132460bf5d2a15d983d362
4
- data.tar.gz: a39d1a0b73260aa8c45ccd48e6f3c1478ac1db86a18952084b0d35bfa2b7c8a3
3
+ metadata.gz: e9b878ad48df8dc40c659917f099ea1c3da1b500cfb691bfae12e6c96bcc99d6
4
+ data.tar.gz: 3a698ad806791e2f6396655de2bfdcd3b004154a27ca29af5bb44b887774179e
5
5
  SHA512:
6
- metadata.gz: 2052481ce02c0fcb3947778df3132a2ce76d2848f8748970494a490926fcb8764275e953ab1f3169710325a774087deeb901bd70c676cc0b2bd1380945fb0610
7
- data.tar.gz: 0a97dd68a18fbbc247a618f9c4fe23b3d66552c8971dba5dd54380f9c019d466c5cccea02bf5b498577ea8230723d95e7f36753c19c1b42556184c79ab7bc571
6
+ metadata.gz: b0386fd7910a6bd53ecf101a7a365f1decfab0dab3900518482755f2fb6de3f9c0a6d5a5e277eedc6974462aa9a8d6ea5fee0dfe7d301fb365dfd0dc919967a6
7
+ data.tar.gz: e2fc2e48785bee63f870f0a84c70354986974172a3b65c21f3b46db323b88423ec2975879a6f6dba5b60bd2283d37ddd9fbfccfe800b2508b39612fae6c65e84
@@ -1,6 +1,32 @@
1
1
  ## [Unreleased]
2
2
  *no unreleased changes*
3
3
 
4
+ ## 5.8.2 / 2020-07-22
5
+ ### Fixed
6
+ * Tweak integration testing driver config, for capybara 3.33.0 deprecations
7
+
8
+ ## 5.8.1 / 2020-07-10
9
+ ### Fixed
10
+ * Fix issue running `brakeman:fingerprint_details` task
11
+
12
+ ## 5.8.0 / 2020-04-07
13
+ ### Added
14
+ * Ability to select git CI branch by exporting `RAKE_CI_BRANCH_NAME`
15
+
16
+ ## 5.7.1 / 2020-04-07
17
+ ### Fixed
18
+ * Address issue updating redmine using commit message tags
19
+
20
+ ## 5.7.0 / 2020-03-26
21
+ ### Added
22
+ * Add `ci:brakeman:strict` alternative CI task. (#77)
23
+ * Send `brakeman_filtered_warnings` metrics. (#78)
24
+ * Allow redmine tickets to be updated (but not resolved) when the build fails (#73)
25
+
26
+ ### Fixed
27
+ * Stop including asset compilation caches in the deployment archive.
28
+ * Ensure brakeman alerts aren't sent to Slack if they've been reviewed and filtered out
29
+
4
30
  ## 5.6.0 / 2020-02-14
5
31
  ### Added
6
32
  * Add `flakey_test` to the minitest DSL, to allow sporadic failures to be retried
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ## NdrDevSupport [![Build Status](https://travis-ci.org/PublicHealthEngland/ndr_dev_support.svg?branch=master)](https://travis-ci.org/PublicHealthEngland/ndr_dev_support) [![Gem Version](https://badge.fury.io/rb/ndr_dev_support.svg)](https://badge.fury.io/rb/ndr_dev_support)
1
+ ## NdrDevSupport [![Maintainability](https://api.codeclimate.com/v1/badges/2b2a644964f2aa930f81/maintainability)](https://codeclimate.com/github/PublicHealthEngland/ndr_dev_support/maintainability) [![Build Status](https://travis-ci.org/PublicHealthEngland/ndr_dev_support.svg?branch=master)](https://travis-ci.org/PublicHealthEngland/ndr_dev_support) [![Gem Version](https://badge.fury.io/rb/ndr_dev_support.svg)](https://badge.fury.io/rb/ndr_dev_support)
2
2
 
3
3
  This is the Public Health England (PHE) National Disease Registers (NDR) Developer Support ruby gem,
4
4
  providing:
@@ -28,7 +28,7 @@ Or install it yourself as:
28
28
  To add development support tasks (see below) to your project, add this line to your application's `Rakefile`:
29
29
 
30
30
  ```ruby
31
- require 'ndr_dev_support/tasks'
31
+ require 'ndr_dev_support/tasks' if Rails.env.development? || Rails.env.test?
32
32
  ```
33
33
 
34
34
  ## Usage
@@ -19,7 +19,7 @@ file safety:
19
19
  CHANGELOG.md:
20
20
  comments:
21
21
  reviewed_by: josh.pencheon
22
- safe_revision: 8995f6ed25fa308e541c3d33396b0a30c4f4db80
22
+ safe_revision: 49a8831328fb7d24f8f6f91c5295e8f8348a383d
23
23
  CODE_OF_CONDUCT.md:
24
24
  comments:
25
25
  reviewed_by: timgentry
@@ -35,7 +35,7 @@ file safety:
35
35
  README.md:
36
36
  comments:
37
37
  reviewed_by: josh.pencheon
38
- safe_revision: a2f178853da640112cf3063ca1d640157c9edb9f
38
+ safe_revision: e389930b98976f20e3fc94c771e5c456b729f8cb
39
39
  Rakefile:
40
40
  comments:
41
41
  reviewed_by: josh.pencheon
@@ -99,7 +99,7 @@ file safety:
99
99
  lib/ndr_dev_support/capistrano/svn_cache.rb:
100
100
  comments:
101
101
  reviewed_by: josh.pencheon
102
- safe_revision: 123d0cd32bdf9e0940fac8945985aa9f467616c1
102
+ safe_revision: 2baa360b06290775a961a7573fe08edd18f8312e
103
103
  lib/ndr_dev_support/capistrano/sysadmin_scripts.rb:
104
104
  comments:
105
105
  reviewed_by: josh.pencheon
@@ -107,7 +107,7 @@ file safety:
107
107
  lib/ndr_dev_support/daemon/ci_server.rb:
108
108
  comments:
109
109
  reviewed_by: josh.pencheon
110
- safe_revision: 5075331fb3f33cd214c2ca76b199f27ddd743170
110
+ safe_revision: 3fdf010a91bd9927ef34e3df66b8a4bbbd20315a
111
111
  lib/ndr_dev_support/daemon/stoppable.rb:
112
112
  comments:
113
113
  reviewed_by: josh.pencheon
@@ -135,7 +135,7 @@ file safety:
135
135
  lib/ndr_dev_support/integration_testing/drivers/switchable.rb:
136
136
  comments:
137
137
  reviewed_by: josh.pencheon
138
- safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
138
+ safe_revision: e9b74559d28e7520c0376d1bec4a2566aae14b05
139
139
  lib/ndr_dev_support/integration_testing/dsl.rb:
140
140
  comments:
141
141
  reviewed_by: josh.pencheon
@@ -147,7 +147,7 @@ file safety:
147
147
  lib/ndr_dev_support/rake_ci/brakeman_helper.rb:
148
148
  comments:
149
149
  reviewed_by: josh.pencheon
150
- safe_revision: d3d238a863c0b016d2d782b1696964fa3f40738b
150
+ safe_revision: 053c9834ca5d402a1f8dc8d09257dc7075a5ec06
151
151
  lib/ndr_dev_support/rake_ci/commit_cop.rb:
152
152
  comments:
153
153
  reviewed_by: josh.pencheon
@@ -179,7 +179,7 @@ file safety:
179
179
  lib/ndr_dev_support/rake_ci/redmine/ticket_resolver.rb:
180
180
  comments:
181
181
  reviewed_by: josh.pencheon
182
- safe_revision: 2154aa7f32e731933ff6091b8f42b2b014028a6a
182
+ safe_revision: 788b8fc31952a6fb640101df96a370b21d269249
183
183
  lib/ndr_dev_support/rake_ci/simple_cov_helper.rb:
184
184
  comments:
185
185
  reviewed_by: timgentry
@@ -215,7 +215,7 @@ file safety:
215
215
  lib/ndr_dev_support/version.rb:
216
216
  comments:
217
217
  reviewed_by: josh.pencheon
218
- safe_revision: 8995f6ed25fa308e541c3d33396b0a30c4f4db80
218
+ safe_revision: 49a8831328fb7d24f8f6f91c5295e8f8348a383d
219
219
  lib/tasks/audit_code.rake:
220
220
  comments: Identical to the version reviewed by josh.pencheon when contained within
221
221
  ndr_support
@@ -224,7 +224,7 @@ file safety:
224
224
  lib/tasks/ci/brakeman.rake:
225
225
  comments:
226
226
  reviewed_by: josh.pencheon
227
- safe_revision: 908c04663ca6949259f41fe38ee705f03774cbdf
227
+ safe_revision: fe7dfc7f1775e8b85ae6968e8f475b9e930addf7
228
228
  lib/tasks/ci/bundle_audit.rake:
229
229
  comments:
230
230
  reviewed_by: josh.pencheon
@@ -248,7 +248,7 @@ file safety:
248
248
  lib/tasks/ci/minitest.rake:
249
249
  comments:
250
250
  reviewed_by: josh.pencheon
251
- safe_revision: 29b7dc86673f4f876667db95e79a57b20766077e
251
+ safe_revision: 12aad1254186ee9ce0fde263bf8dccf46cdfebe2
252
252
  lib/tasks/ci/notes.rake:
253
253
  comments:
254
254
  reviewed_by: timgentry
@@ -260,7 +260,7 @@ file safety:
260
260
  lib/tasks/ci/redmine.rake:
261
261
  comments:
262
262
  reviewed_by: josh.pencheon
263
- safe_revision: 958ef09c5cf50bb50348e6bff949e3e5989254f9
263
+ safe_revision: 12aad1254186ee9ce0fde263bf8dccf46cdfebe2
264
264
  lib/tasks/ci/rugged.rake:
265
265
  comments:
266
266
  reviewed_by: josh.pencheon
@@ -288,7 +288,7 @@ file safety:
288
288
  ndr_dev_support.gemspec:
289
289
  comments:
290
290
  reviewed_by: josh.pencheon
291
- safe_revision: a2f178853da640112cf3063ca1d640157c9edb9f
291
+ safe_revision: f4c1ea57d3eb817783fdc47a16169d215f9788a6
292
292
  test/daemon/ci_server_test.rb:
293
293
  comments:
294
294
  reviewed_by: josh.pencheon
@@ -316,7 +316,7 @@ file safety:
316
316
  test/rake_ci/redmine/ticket_resolver_test.rb:
317
317
  comments:
318
318
  reviewed_by: josh.pencheon
319
- safe_revision: 2154aa7f32e731933ff6091b8f42b2b014028a6a
319
+ safe_revision: 12aad1254186ee9ce0fde263bf8dccf46cdfebe2
320
320
  test/test_helper.rb:
321
321
  comments:
322
322
  reviewed_by: josh.pencheon
@@ -17,7 +17,13 @@ Capistrano::Configuration.instance(:must_exist).load do
17
17
  system("rm -rf #{cache}")
18
18
  end
19
19
  end
20
+
21
+ desc 'Ensures compilation artefacts are removed from the compressed archive sent to the server'
22
+ task :augment_copy_exclude do
23
+ set :copy_exclude, (fetch(:copy_exclude) || []) + %w[node_modules tmp/*]
24
+ end
20
25
  end
21
26
 
27
+ before 'deploy:update_code', 'ndr_dev_support:augment_copy_exclude'
22
28
  before 'deploy:update_code', 'ndr_dev_support:remove_svn_cache_if_needed'
23
29
  end
@@ -48,7 +48,7 @@ module NdrDevSupport
48
48
 
49
49
  git_fetch
50
50
  git_discard_changes
51
- git_checkout(MASTER_BRANCH_NAME)
51
+ git_checkout(git_branch_name)
52
52
 
53
53
  objectids_between_master_and_remote.each do |oid|
54
54
  log("testing #{oid}...")
@@ -72,6 +72,10 @@ module NdrDevSupport
72
72
  raise exception
73
73
  end
74
74
 
75
+ def git_branch_name
76
+ ENV.fetch('RAKE_CI_BRANCH_NAME', MASTER_BRANCH_NAME)
77
+ end
78
+
75
79
  def git_fetch
76
80
  system(svn_remote? ? 'git svn fetch' : 'git fetch')
77
81
  end
@@ -117,7 +121,7 @@ module NdrDevSupport
117
121
  def objectids_between_master_and_remote
118
122
  walker = Rugged::Walker.new(@repo)
119
123
  walker.push(repo.branches[remote_branch].target_id)
120
- current_target_id = repo.branches[MASTER_BRANCH_NAME].target_id
124
+ current_target_id = repo.branches[git_branch_name].target_id
121
125
 
122
126
  revisions = []
123
127
  # walk backwards from the most recent commit, breaking at the current one
@@ -18,14 +18,23 @@ module NdrDevSupport
18
18
  CONFIGURED = ENV.fetch('INTEGRATION_DRIVER', DEFAULT).to_sym
19
19
 
20
20
  Capybara.register_driver(:switchable) do |app|
21
- Capybara.drivers.fetch(CONFIGURED).call(app)
21
+ configured_driver = Capybara.drivers[CONFIGURED]
22
+ raise "Driver #{CONFIGURED} not found!" unless configured_driver
23
+
24
+ configured_driver.call(app)
22
25
  end
23
26
 
24
27
  Capybara::Screenshot.register_driver(:switchable) do |driver, path|
25
- Capybara::Screenshot.registered_drivers.fetch(CONFIGURED).call(driver, path)
28
+ configured_screenshot_driver = Capybara::Screenshot.registered_drivers[CONFIGURED]
29
+ raise "Screenshot driver #{CONFIGURED} not found!" unless configured_screenshot_driver
30
+
31
+ configured_screenshot_driver.call(driver, path)
26
32
  end
27
33
 
28
- ShowMeTheCookies.register_adapter(:switchable, ShowMeTheCookies.adapters.fetch(CONFIGURED))
34
+ cookie_driver = ShowMeTheCookies.adapters[CONFIGURED]
35
+ raise "Cookie driver #{CONFIGURED} not found!" unless cookie_driver
36
+
37
+ ShowMeTheCookies.register_adapter(:switchable, cookie_driver)
29
38
  end
30
39
  end
31
40
  end
@@ -10,7 +10,9 @@ module NdrDevSupport
10
10
 
11
11
  attr_reader :new_fingerprints, :old_fingerprints, :tracker
12
12
 
13
- def run
13
+ def run(strict:)
14
+ @strict = strict
15
+
14
16
  @tracker = ::Brakeman.run(app_path: '.')
15
17
 
16
18
  last_commit_fingerprints = load_last_commit_data
@@ -22,10 +24,16 @@ module NdrDevSupport
22
24
  end
23
25
  end
24
26
 
27
+ # All warnings (including those we've flagged as false positives)
25
28
  def warnings
26
29
  @tracker.warnings
27
30
  end
28
31
 
32
+ # Only the warnings we haven't flagged as false positives (i.e. the outstanding ones)
33
+ def filtered_warnings
34
+ @tracker.filtered_warnings
35
+ end
36
+
29
37
  def warning_counts_by_confidence
30
38
  return @warning_counts_by_confidence if @warning_counts_by_confidence
31
39
 
@@ -36,13 +44,90 @@ module NdrDevSupport
36
44
  @warning_counts_by_confidence
37
45
  end
38
46
 
47
+ def filtered_warning_counts_by_confidence
48
+ return @filtered_warning_counts_by_confidence if @filtered_warning_counts_by_confidence
49
+
50
+ @filtered_warning_counts_by_confidence = {}
51
+ filtered_warnings.group_by(&:confidence).each do |confidence, grouped_warnings|
52
+ @filtered_warning_counts_by_confidence[confidence] = grouped_warnings.count
53
+ end
54
+ @filtered_warning_counts_by_confidence
55
+ end
56
+
39
57
  def current_fingerprints
40
- @current_fingerprints ||= warnings.map(&:fingerprint).to_set
58
+ @current_fingerprints ||= filtered_warnings.map(&:fingerprint).to_set
41
59
  end
42
60
 
43
61
  def save_current_fingerprints
44
62
  save_current_commit_data(current_fingerprints)
45
63
  end
64
+
65
+ def metrics
66
+ metrics = []
67
+
68
+ ::Brakeman::Warning::TEXT_CONFIDENCE.each do |confidence, text|
69
+ overall_metric = {
70
+ name: 'brakeman_warnings',
71
+ type: :gauge,
72
+ label_set: { confidence: text },
73
+ value: warning_counts_by_confidence[confidence] || 0
74
+ }
75
+ filtered_metric = {
76
+ name: 'brakeman_filtered_warnings',
77
+ type: :gauge,
78
+ label_set: { confidence: text },
79
+ value: filtered_warning_counts_by_confidence[confidence] || 0
80
+ }
81
+ metrics << overall_metric << filtered_metric
82
+ puts overall_metric.inspect
83
+ puts filtered_metric.inspect
84
+ end
85
+
86
+ metrics
87
+ end
88
+
89
+ def attachments
90
+ attachments = []
91
+
92
+ if @strict && current_fingerprints.any?
93
+ # all warnings found
94
+ attachment = {
95
+ color: 'danger',
96
+ title: "#{current_fingerprints.size} Brakeman warning(s) :rotating_light:",
97
+ text: '_Brakeman_ warning fingerprint(s):' \
98
+ "```#{current_fingerprints.to_a.join("\n")}```",
99
+ footer: 'bundle exec rake ci:brakeman:fingerprint_details FINGERPRINTS=...',
100
+ mrkdwn_in: ['text']
101
+ }
102
+ attachments << attachment
103
+ puts attachment.inspect
104
+ elsif new_fingerprints.any?
105
+ # new warnings found
106
+ attachment = {
107
+ color: 'danger',
108
+ title: "#{new_fingerprints.size} new Brakeman warning(s) :rotating_light:",
109
+ text: '_Brakeman_ warning fingerprint(s):' \
110
+ "```#{new_fingerprints.to_a.join("\n")}```",
111
+ footer: 'bundle exec rake ci:brakeman:fingerprint_details FINGERPRINTS=...',
112
+ mrkdwn_in: ['text']
113
+ }
114
+ attachments << attachment
115
+ puts attachment.inspect
116
+ end
117
+
118
+ unless old_fingerprints.empty?
119
+ # old warnings missing
120
+ attachment = {
121
+ color: 'good',
122
+ title: "#{old_fingerprints.size} Brakeman warning(s) resolved :+1:",
123
+ footer: 'bundle exec rake ci:brakeman'
124
+ }
125
+ attachments << attachment
126
+ puts attachment.inspect
127
+ end
128
+
129
+ attachments
130
+ end
46
131
  end
47
132
  end
48
133
  end
@@ -36,13 +36,13 @@ module NdrDevSupport
36
36
  @hostname = hostname
37
37
  end
38
38
 
39
- def process_commit(user, revision, message)
39
+ def process_commit(user, revision, message, tests_passed)
40
40
  resolved_tickets = []
41
41
 
42
42
  each_ticket_from(message) do |ticket, resolved|
43
- update_ticket(message, user, revision, ticket, resolved)
43
+ update_ticket(message, user, revision, ticket, resolved, tests_passed)
44
44
 
45
- resolved_tickets << ticket if resolved
45
+ resolved_tickets << ticket if resolved && tests_passed
46
46
  end
47
47
 
48
48
  resolved_tickets
@@ -62,13 +62,17 @@ module NdrDevSupport
62
62
  end
63
63
  end
64
64
 
65
- def update_payload(message, user, revision, ticket_closed, resolved)
65
+ def update_payload(message, user, revision, ticket_closed, resolved, tests_passed)
66
+ if resolved && !ticket_closed && !tests_passed
67
+ message += "\n\n*Automated tests did not pass successfully, so ticket status left unchanged.*"
68
+ end
69
+
66
70
  payload = {
67
71
  notes: "_#{resolved ? 'Resolved' : 'Referenced'} by #{user} in #{revision}_:" \
68
72
  "#{resolved ? message.gsub(CLOSE_REGEX, '+\1+') : message}"
69
73
  }
70
74
 
71
- payload[:status_id] = 3 if resolved && !ticket_closed
75
+ payload[:status_id] = 3 if resolved && !ticket_closed && tests_passed
72
76
  payload
73
77
  end
74
78
 
@@ -82,8 +86,8 @@ module NdrDevSupport
82
86
  @http
83
87
  end
84
88
 
85
- def update_ticket(message, user, revision, ticket, resolved)
86
- payload = update_payload(message, user, revision, ticket_closed?(ticket), resolved)
89
+ def update_ticket(message, user, revision, ticket, resolved, tests_passed)
90
+ payload = update_payload(message, user, revision, ticket_closed?(ticket), resolved, tests_passed)
87
91
 
88
92
  http.send_request('PUT',
89
93
  "/issues/#{ticket.to_i}.json",
@@ -2,5 +2,5 @@
2
2
  # This defines the NdrDevSupport version. If you change it, rebuild and commit the gem.
3
3
  # Use "rake build" to build the gem, see rake -T for all bundler rake tasks (and our own).
4
4
  module NdrDevSupport
5
- VERSION = '5.6.0'.freeze
5
+ VERSION = '5.8.2'.freeze
6
6
  end
@@ -11,48 +11,35 @@ namespace :ci do
11
11
 
12
12
  brakeman = NdrDevSupport::RakeCI::BrakemanHelper.new
13
13
  brakeman.commit = @commit
14
- brakeman.run
15
-
16
- Brakeman::Warning::TEXT_CONFIDENCE.each do |confidence, text|
17
- metric = {
18
- name: 'brakeman_warnings',
19
- type: :gauge,
20
- label_set: { confidence: text },
21
- value: brakeman.warning_counts_by_confidence[confidence] || 0
22
- }
23
- @metrics << metric
24
- puts metric.inspect
25
- end
26
-
27
- unless brakeman.new_fingerprints.empty?
28
- # new warnings found
29
- attachment = {
30
- color: 'danger',
31
- title: "#{brakeman.new_fingerprints.size} new Brakeman warning(s) :rotating_light:",
32
- text: '_Brakeman_ warning fingerprint(s):' \
33
- "```#{brakeman.new_fingerprints.to_a.join("\n")}```",
34
- footer: 'bundle exec rake ci:brakeman:fingerprint_details FINGERPRINTS=...',
35
- mrkdwn_in: ['text']
36
- }
37
- @attachments << attachment
38
- puts attachment.inspect
39
- end
14
+ brakeman.run(strict: false)
40
15
 
41
- unless brakeman.old_fingerprints.empty?
42
- # old warnings missing
43
- attachment = {
44
- color: 'good',
45
- title: "#{brakeman.old_fingerprints.size} Brakeman warning(s) resolved :+1:",
46
- footer: 'bundle exec rake ci:brakeman'
47
- }
48
- @attachments << attachment
49
- puts attachment.inspect
50
- end
16
+ @metrics.concat(brakeman.metrics)
17
+ @attachments.concat(brakeman.attachments)
51
18
 
52
19
  brakeman.save_current_fingerprints
53
20
  end
54
21
 
55
22
  namespace :brakeman do
23
+ desc "Brakeman (strict mode - all issues must be reviewed by Brakeman's interactive mode)"
24
+ task strict: 'ci:rugged:setup' do
25
+ next unless defined?(Rails)
26
+
27
+ require 'ndr_dev_support/rake_ci/brakeman_helper'
28
+ # Usage: bundle exec rake ci:brakeman:strict
29
+
30
+ @metrics ||= []
31
+ @attachments ||= []
32
+
33
+ brakeman = NdrDevSupport::RakeCI::BrakemanHelper.new
34
+ brakeman.commit = @commit
35
+ brakeman.run(strict: true)
36
+
37
+ @metrics.concat(brakeman.metrics)
38
+ @attachments.concat(brakeman.attachments)
39
+
40
+ brakeman.save_current_fingerprints
41
+ end
42
+
56
43
  desc 'Brakeman fingerprint details'
57
44
  task fingerprint_details: 'ci:rugged:setup' do
58
45
  # Usage: bundle exec rake ci:brakeman:fingerprint_details FINGERPRINTS=fp1,fp2,...
@@ -70,7 +57,7 @@ namespace :ci do
70
57
 
71
58
  brakeman = NdrDevSupport::RakeCI::BrakemanHelper.new
72
59
  brakeman.commit = @commit
73
- brakeman.run
60
+ brakeman.run(strict: false)
74
61
 
75
62
  text_reporter = Brakeman::Report::Text.new(brakeman.tracker)
76
63
 
@@ -47,10 +47,9 @@ namespace :ci do
47
47
  # Test(s) ran
48
48
  Rake::Task['ci:simplecov:process'].invoke
49
49
 
50
- if hash[:statistics][:failures].zero? && hash[:statistics][:errors].zero? &&
51
- Rake::Task.task_defined?('ci:redmine:update_tickets')
52
- # Test(s) passing
53
- Rake::Task['ci:redmine:update_tickets'].invoke
50
+ if Rake::Task.task_defined?('ci:redmine:update_tickets')
51
+ tests_passed = hash[:statistics][:failures].zero? && hash[:statistics][:errors].zero?
52
+ Rake::Task['ci:redmine:update_tickets'].invoke(tests_passed)
54
53
  end
55
54
 
56
55
  @attachments.concat(hash[:attachments])
@@ -12,7 +12,7 @@ namespace :ci do
12
12
  end
13
13
 
14
14
  desc 'Update Redmine tickets'
15
- task update_tickets: ['ci:rugged:setup', 'ci:redmine:setup'] do
15
+ task :update_tickets, [:tests_passed] => ['ci:rugged:setup', 'ci:redmine:setup'] do |task, args|
16
16
  api_key = ENV['REDMINE_API_KEY']
17
17
  hostname = ENV['REDMINE_HOSTNAME']
18
18
  next if api_key.nil? || hostname.nil?
@@ -27,7 +27,7 @@ namespace :ci do
27
27
  ticket_resolver = NdrDevSupport::RakeCI::Redmine::TicketResolver.new(api_key, hostname)
28
28
  resolved_tickets = ticket_resolver.process_commit(@commit.author[:name],
29
29
  @friendly_revision_name,
30
- @commit.message)
30
+ @commit.message, args.tests_passed)
31
31
  rescue
32
32
  @attachments << {
33
33
  color: 'danger',
@@ -57,5 +57,5 @@ Gem::Specification.new do |spec|
57
57
 
58
58
  spec.add_development_dependency 'bundler'
59
59
  spec.add_development_dependency 'mocha'
60
- spec.add_development_dependency 'rake', '~> 10.0'
60
+ spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
61
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndr_dev_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.0
4
+ version: 5.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - NCRS Development Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-14 00:00:00.000000000 Z
11
+ date: 2020-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -366,14 +366,20 @@ dependencies:
366
366
  requirements:
367
367
  - - "~>"
368
368
  - !ruby/object:Gem::Version
369
- version: '10.0'
369
+ version: '12.3'
370
+ - - ">="
371
+ - !ruby/object:Gem::Version
372
+ version: 12.3.3
370
373
  type: :development
371
374
  prerelease: false
372
375
  version_requirements: !ruby/object:Gem::Requirement
373
376
  requirements:
374
377
  - - "~>"
375
378
  - !ruby/object:Gem::Version
376
- version: '10.0'
379
+ version: '12.3'
380
+ - - ">="
381
+ - !ruby/object:Gem::Version
382
+ version: 12.3.3
377
383
  description: Provides support to developers of NDR projects
378
384
  email: []
379
385
  executables: []