knapsack_pro 6.0.3 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '05131444388481496f61779bc12d4bb749111cf798d667d969664b5bd2668e08'
4
- data.tar.gz: 9fb9f32b315e914e4f089ff0946a8204017740a23cf2fede172f4276b29dfcd4
3
+ metadata.gz: 5e14f8999c37f913f26b9d52a4c5968f25d9c3f7d3a6f91442e140619d5eb986
4
+ data.tar.gz: 58350583c0545e48f7deb7b2bf78f951124f87b35f734627400794479c3a53b2
5
5
  SHA512:
6
- metadata.gz: 786fc53dbf7b6c068c2135b3f1d29218b17a1d5155db591088a4642442b281e387afa1b8815a9ccd3adfd88da86aded5158a7f5110e09d057a021aa5ef563891
7
- data.tar.gz: f771d87b9dcd3c2dd19cc5058d7a9dc3a56e1a2101cbaeff1210bda562bd0670341ce6f3e2f341f32a1f1e5cd49a165c96cd36999f109a7dad87a3adf7cc25ae
6
+ metadata.gz: 3ee99fbf40d75acbaf3af791947a87a2e7d547638e99dd04666133e3f4c7addc33f8e91f610fb055b3fd8d47bfadb8e9257dfa0ef65ec16042b0ac7dfb51b727
7
+ data.tar.gz: 3adfda6f4cfb3761b497da0d2aeb688fe70efc65334da29b70fb0af3ff0a480dcf83714d11c3b126bcdc1218fa46c1b3f88264090bf204f310dc332512b077b8
data/.circleci/config.yml CHANGED
@@ -1,45 +1,331 @@
1
- # Ruby CircleCI 2.0 configuration file
2
- #
3
- # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
- #
5
- version: 2
6
- jobs:
7
- build:
8
- parallelism: 1
9
- docker:
10
- # specify the version you desire here
11
- # https://circleci.com/developer/images/image/cimg/ruby
12
- - image: cimg/ruby:3.2.1
13
- environment:
14
- CODECLIMATE_REPO_TOKEN: b6626e682a8e97e0c5978febc92c3526792a2d018b41b8e1b52689da37fb7d92
15
-
16
- working_directory: ~/knapsack_pro-ruby
1
+ version: 2.1
17
2
 
3
+ commands:
4
+ setup_knapsack_pro_ruby:
18
5
  steps:
19
6
  - checkout
20
-
21
- # Download and cache dependencies
22
7
  - restore_cache:
23
8
  keys:
24
- - v2-dependencies-bundler-{{ checksum "knapsack_pro.gemspec" }}
25
- # fallback to using the latest cache if no exact match is found
26
- - v2-dependencies-bundler-
27
-
9
+ - v1-bundler-ruby-{{ checksum "knapsack_pro.gemspec" }}
10
+ - v1-bundler-ruby-
28
11
  - run:
29
- name: install ruby dependencies
30
12
  command: |
31
- bundle install --jobs=4 --retry=3 --path vendor/bundle
32
-
33
- - run: gem install rubocop
34
-
13
+ bundle config set --local path './vendor/bundle'
14
+ bundle install --jobs=4 --retry=3
35
15
  - save_cache:
36
16
  paths:
37
17
  - ./vendor/bundle
38
- key: v2-dependencies-bundler-{{ checksum "knapsack_pro.gemspec" }}
18
+ key: v1-bundler-ruby-{{ checksum "knapsack_pro.gemspec" }}
39
19
 
40
- # enforce `frozen_string_literal: true` in the gem files
41
- - run: rubocop -A --only Style/FrozenStringLiteralComment,Layout/EmptyLineAfterMagicComment lib/
20
+ setup_rails_app_with_knapsack_pro:
21
+ parameters:
22
+ path:
23
+ type: string
24
+ ruby:
25
+ type: string
26
+ rspec:
27
+ type: string
28
+ default: ""
29
+ steps:
30
+ - run:
31
+ working_directory: << parameters.path >>
32
+ command: |
33
+ git clone --depth 1 --branch $CIRCLE_BRANCH --single-branch git@github.com:KnapsackPro/rails-app-with-knapsack_pro.git ./ || git clone --depth 1 git@github.com:KnapsackPro/rails-app-with-knapsack_pro.git ./
34
+ if [[ "<< parameters.rspec >>" != "" ]]; then
35
+ sed -i 's/.*gem.*rspec-core.*/gem "rspec-core", "<< parameters.rspec >>"/g' ./Gemfile
36
+ echo "Updated RSpec version in Gemfile"
37
+ fi
38
+ - restore_cache:
39
+ keys:
40
+ - v1-bundler-rails-{{ checksum "Gemfile.lock" }}-<< parameters.ruby >>
41
+ - v1-bundler-rails-{{ checksum "Gemfile.lock" }}-
42
+ - v1-bundler-rails-
43
+ - run:
44
+ working_directory: << parameters.path >>
45
+ command: |
46
+ bundle config set --local path './vendor/bundle'
47
+ bundle install --jobs=4 --retry=3
48
+ - save_cache:
49
+ paths:
50
+ - << parameters.path >>/vendor/bundle
51
+ key: v1-bundler-rails-{{ checksum "Gemfile.lock" }}-<< parameters.ruby >>
42
52
 
53
+ jobs:
54
+ unit:
55
+ parallelism: 1
56
+ working_directory: ~/knapsack_pro-ruby
57
+ docker:
58
+ - image: cimg/ruby:3.2
59
+ steps:
60
+ - setup_knapsack_pro_ruby
61
+ - run: gem install rubocop
62
+ - run: rubocop --fail-level A --only Style/FrozenStringLiteralComment,Layout/EmptyLineAfterMagicComment lib/
43
63
  - run: bundle exec rspec spec
44
-
45
64
  - run: bundle exec ruby spec/knapsack_pro/formatters/time_tracker_specs.rb
65
+
66
+ integration-regular-rspec:
67
+ parallelism: 2
68
+ working_directory: ~/knapsack_pro-ruby
69
+ parameters:
70
+ ruby:
71
+ type: string
72
+ rspec:
73
+ type: string
74
+ docker:
75
+ - image: cimg/ruby:<< parameters.ruby >>-browsers
76
+ environment:
77
+ PGHOST: 127.0.0.1
78
+ PGUSER: rails-app-with-knapsack_pro
79
+ RAILS_ENV: test
80
+ RACK_ENV: test
81
+ KNAPSACK_PRO_ENDPOINT: https://api-staging.knapsackpro.com
82
+ KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: $KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC
83
+ EXTRA_TEST_FILES_DELAY: 10
84
+ - image: cimg/postgres:14.7
85
+ environment:
86
+ POSTGRES_DB: rails-app-with-knapsack_pro_test
87
+ POSTGRES_PASSWORD: password
88
+ POSTGRES_USER: rails-app-with-knapsack_pro
89
+ steps:
90
+ - setup_knapsack_pro_ruby
91
+ - setup_rails_app_with_knapsack_pro:
92
+ path: ~/rails-app-with-knapsack_pro
93
+ ruby: << parameters.ruby >>
94
+ rspec: << parameters.rspec >>
95
+ - run: dockerize -wait tcp://localhost:5432 -timeout 1m
96
+ - run:
97
+ working_directory: ~/rails-app-with-knapsack_pro
98
+ command: |
99
+ ruby --version
100
+ bundle exec rspec --version
101
+ RSPEC=$(bundle exec rspec --version | grep rspec-core | head -n1 | cut -d " " -f5)
102
+ [ $RSPEC != << parameters.rspec >> ] && exit 1 || echo "Correct version of RSpec installed: $RSPEC"
103
+ - run:
104
+ working_directory: ~/rails-app-with-knapsack_pro
105
+ command: bin/rails db:setup
106
+ - run:
107
+ working_directory: ~/rails-app-with-knapsack_pro
108
+ command: |
109
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--regular"
110
+ bundle exec rake knapsack_pro:rspec
111
+ - run:
112
+ working_directory: ~/rails-app-with-knapsack_pro
113
+ command: |
114
+ # fallback ||
115
+ export KNAPSACK_PRO_ENDPOINT=https://api-fake.knapsackpro.com
116
+ export KNAPSACK_PRO_MAX_REQUEST_RETRIES=1
117
+ bundle exec rake knapsack_pro:rspec
118
+ - run:
119
+ working_directory: ~/rails-app-with-knapsack_pro
120
+ command: |
121
+ # split by test examples ||
122
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--regular--split"
123
+ export KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES=true
124
+ bundle exec rake knapsack_pro:rspec
125
+
126
+ integration-queue-rspec:
127
+ parameters:
128
+ ruby:
129
+ type: string
130
+ rspec:
131
+ type: string
132
+ parallelism: 2
133
+ working_directory: ~/knapsack_pro-ruby
134
+ docker:
135
+ - image: cimg/ruby:<< parameters.ruby >>-browsers
136
+ environment:
137
+ PGHOST: 127.0.0.1
138
+ PGUSER: rails-app-with-knapsack_pro
139
+ RAILS_ENV: test
140
+ RACK_ENV: test
141
+ KNAPSACK_PRO_ENDPOINT: https://api-staging.knapsackpro.com
142
+ KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: $KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC
143
+ EXTRA_TEST_FILES_DELAY: 10
144
+ - image: cimg/postgres:14.7
145
+ environment:
146
+ POSTGRES_DB: rails-app-with-knapsack_pro_test
147
+ POSTGRES_PASSWORD: password
148
+ POSTGRES_USER: rails-app-with-knapsack_pro
149
+ steps:
150
+ - setup_knapsack_pro_ruby
151
+ - setup_rails_app_with_knapsack_pro:
152
+ path: ~/rails-app-with-knapsack_pro
153
+ ruby: << parameters.ruby >>
154
+ rspec: << parameters.rspec >>
155
+ - run: dockerize -wait tcp://localhost:5432 -timeout 1m
156
+ - run:
157
+ working_directory: ~/rails-app-with-knapsack_pro
158
+ command: |
159
+ ruby --version
160
+ bundle exec rspec --version
161
+ RSPEC=$(bundle exec rspec --version | grep rspec-core | head -n1 | cut -d " " -f5)
162
+ [ $RSPEC != << parameters.rspec >> ] && exit 1 || echo "Correct version of RSpec installed: $RSPEC"
163
+ - run:
164
+ working_directory: ~/rails-app-with-knapsack_pro
165
+ command: bin/rails db:setup
166
+ - run:
167
+ working_directory: ~/rails-app-with-knapsack_pro
168
+ command: |
169
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue"
170
+ bundle exec rake knapsack_pro:queue:rspec
171
+ - run:
172
+ working_directory: ~/rails-app-with-knapsack_pro
173
+ command: |
174
+ # run 0 tests as queue is consumed ||
175
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue"
176
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=false
177
+ bundle exec rake knapsack_pro:queue:rspec
178
+ - run:
179
+ working_directory: ~/rails-app-with-knapsack_pro
180
+ command: |
181
+ # retry the same split ||
182
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue"
183
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true
184
+ bundle exec rake knapsack_pro:queue:rspec
185
+ - run:
186
+ working_directory: ~/rails-app-with-knapsack_pro
187
+ command: |
188
+ # fallback ||
189
+ export KNAPSACK_PRO_ENDPOINT=https://api-fake.knapsackpro.com
190
+ export KNAPSACK_PRO_MAX_REQUEST_RETRIES=1
191
+ bundle exec rake knapsack_pro:queue:rspec
192
+ - run:
193
+ working_directory: ~/rails-app-with-knapsack_pro
194
+ command: |
195
+ # split by test examples ||
196
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue--split"
197
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true
198
+ export KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES=true
199
+ bundle exec rake knapsack_pro:queue:rspec
200
+ - run:
201
+ working_directory: ~/rails-app-with-knapsack_pro
202
+ command: |
203
+ # turnip ||
204
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue--turnip"
205
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true
206
+ export KNAPSACK_PRO_TEST_DIR=turnip
207
+ export KNAPSACK_PRO_TEST_FILE_PATTERN="turnip/**/*.feature"
208
+ bundle exec rake "knapsack_pro:queue:rspec[-r turnip/rspec]"
209
+ - run:
210
+ working_directory: ~/rails-app-with-knapsack_pro
211
+ command: |
212
+ # turnip retry ||
213
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue--turnip"
214
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true
215
+ export KNAPSACK_PRO_TEST_DIR=turnip
216
+ export KNAPSACK_PRO_TEST_FILE_PATTERN="turnip/**/*.feature"
217
+ bundle exec rake "knapsack_pro:queue:rspec[-r turnip/rspec]"
218
+
219
+ integration-regular-minitest:
220
+ parallelism: 2
221
+ working_directory: ~/knapsack_pro-ruby
222
+ parameters:
223
+ ruby:
224
+ type: string
225
+ docker:
226
+ - image: cimg/ruby:<< parameters.ruby >>-browsers
227
+ environment:
228
+ PGHOST: 127.0.0.1
229
+ PGUSER: rails-app-with-knapsack_pro
230
+ RAILS_ENV: test
231
+ RACK_ENV: test
232
+ KNAPSACK_PRO_ENDPOINT: https://api-staging.knapsackpro.com
233
+ KNAPSACK_PRO_TEST_SUITE_TOKEN_MINITEST: $KNAPSACK_PRO_TEST_SUITE_TOKEN_MINITEST
234
+ EXTRA_TEST_FILES_DELAY: 10
235
+ - image: cimg/postgres:14.7
236
+ environment:
237
+ POSTGRES_DB: rails-app-with-knapsack_pro_test
238
+ POSTGRES_PASSWORD: password
239
+ POSTGRES_USER: rails-app-with-knapsack_pro
240
+ steps:
241
+ - setup_knapsack_pro_ruby
242
+ - setup_rails_app_with_knapsack_pro:
243
+ path: ~/rails-app-with-knapsack_pro
244
+ ruby: << parameters.ruby >>
245
+ - run: dockerize -wait tcp://localhost:5432 -timeout 1m
246
+ - run:
247
+ working_directory: ~/rails-app-with-knapsack_pro
248
+ command: ruby --version
249
+ - run:
250
+ working_directory: ~/rails-app-with-knapsack_pro
251
+ command: bin/rails db:setup
252
+ - run:
253
+ working_directory: ~/rails-app-with-knapsack_pro
254
+ command: |
255
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--regular"
256
+ bundle exec rake knapsack_pro:minitest[--verbose]
257
+
258
+ integration-queue-minitest:
259
+ parameters:
260
+ ruby:
261
+ type: string
262
+ parallelism: 2
263
+ working_directory: ~/knapsack_pro-ruby
264
+ docker:
265
+ - image: cimg/ruby:<< parameters.ruby >>-browsers
266
+ environment:
267
+ PGHOST: 127.0.0.1
268
+ PGUSER: rails-app-with-knapsack_pro
269
+ RAILS_ENV: test
270
+ RACK_ENV: test
271
+ KNAPSACK_PRO_ENDPOINT: https://api-staging.knapsackpro.com
272
+ KNAPSACK_PRO_TEST_SUITE_TOKEN_MINITEST: $KNAPSACK_PRO_TEST_SUITE_TOKEN_MINITEST
273
+ EXTRA_TEST_FILES_DELAY: 10
274
+ - image: cimg/postgres:14.7
275
+ environment:
276
+ POSTGRES_DB: rails-app-with-knapsack_pro_test
277
+ POSTGRES_PASSWORD: password
278
+ POSTGRES_USER: rails-app-with-knapsack_pro
279
+ steps:
280
+ - setup_knapsack_pro_ruby
281
+ - setup_rails_app_with_knapsack_pro:
282
+ path: ~/rails-app-with-knapsack_pro
283
+ ruby: << parameters.ruby >>
284
+ - run: dockerize -wait tcp://localhost:5432 -timeout 1m
285
+ - run:
286
+ working_directory: ~/rails-app-with-knapsack_pro
287
+ command: ruby --version
288
+ - run:
289
+ working_directory: ~/rails-app-with-knapsack_pro
290
+ command: bin/rails db:setup
291
+ - run:
292
+ working_directory: ~/rails-app-with-knapsack_pro
293
+ command: |
294
+ # minitest ||
295
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue--minitest"
296
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true
297
+ bundle exec rake knapsack_pro:queue:minitest[--verbose]
298
+ - run:
299
+ working_directory: ~/rails-app-with-knapsack_pro
300
+ command: |
301
+ # minitest retry ||
302
+ export KNAPSACK_PRO_BRANCH="$CIRCLE_BRANCH--$CIRCLE_BUILD_NUM--queue--minitest"
303
+ export KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true
304
+ bundle exec rake knapsack_pro:queue:minitest[--verbose]
305
+
306
+ workflows:
307
+ tests:
308
+ jobs:
309
+ - unit
310
+ - integration-regular-rspec:
311
+ name: integration-regular__ruby-<< matrix.ruby >>__rspec-<< matrix.rspec >>
312
+ matrix:
313
+ parameters:
314
+ ruby: ["3.0", "3.1", "3.2"]
315
+ rspec: ["3.10.2", "3.11.0", "3.12.2"]
316
+ - integration-queue-rspec:
317
+ name: integration-queue__ruby-<< matrix.ruby >>__rspec-<< matrix.rspec >>
318
+ matrix:
319
+ parameters:
320
+ ruby: ["3.0", "3.1", "3.2"]
321
+ rspec: ["3.10.2", "3.11.0", "3.12.2"]
322
+ - integration-regular-minitest:
323
+ name: integration-regular__ruby-<< matrix.ruby >>__minitest
324
+ matrix:
325
+ parameters:
326
+ ruby: ["3.0", "3.1", "3.2"]
327
+ - integration-queue-minitest:
328
+ name: integration-queue__ruby-<< matrix.ruby >>__minitest
329
+ matrix:
330
+ parameters:
331
+ ruby: ["3.0", "3.1", "3.2"]
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ### 6.0.4
4
+
5
+ * fix(minitest): avoid installing `at_exit` (that would result in an empty run of Minitest after Knapsack Pro is finished in Queue Mode)
6
+
7
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/236
8
+
9
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v6.0.3...v6.0.4
10
+
3
11
  ### 6.0.3
4
12
 
5
13
  * fix(Turnip): make sure `.feature` files are recorded
data/README.md CHANGED
@@ -18,9 +18,6 @@
18
18
  <a href="https://rubygems.org/gems/knapsack_pro">
19
19
  <img alt="Gem Version" src="https://badge.fury.io/rb/knapsack_pro.svg" />
20
20
  </a>
21
- <a href="https://codeclimate.com/github/KnapsackPro/knapsack_pro-ruby">
22
- <img alt="Code Climate" src="https://codeclimate.com/github/KnapsackPro/knapsack_pro-ruby/badges/gpa.svg" />
23
- </a>
24
21
  </div>
25
22
 
26
23
  <br />
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module KnapsackPro
2
4
  module Formatters
3
5
  class TimeTrackerFetcher
@@ -7,6 +7,10 @@ module KnapsackPro
7
7
  def self.run(args)
8
8
  require 'minitest'
9
9
 
10
+ # Avoid installing `at_exit` since we are calling `Minitest.run` ourselves.
11
+ # Without this, Minitest would run again (autorun) after `Minitest.run`.
12
+ ::Minitest.class_variable_set('@@installed_at_exit', true)
13
+
10
14
  ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN'] = KnapsackPro::Config::Env.test_suite_token_minitest
11
15
  ENV['KNAPSACK_PRO_QUEUE_RECORDING_ENABLED'] = 'true'
12
16
  ENV['KNAPSACK_PRO_QUEUE_ID'] = KnapsackPro::Config::EnvGenerator.set_queue_id
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KnapsackPro
4
- VERSION = '6.0.3'
4
+ VERSION = '6.0.4'
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -9,7 +9,6 @@ require 'webmock/rspec'
9
9
  VCR.configure do |config|
10
10
  config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
11
11
  config.hook_into :webmock # or :fakeweb
12
- config.ignore_hosts('codeclimate.com')
13
12
  end
14
13
 
15
14
  require 'knapsack_pro'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knapsack_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.3
4
+ version: 6.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArturT
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-07 00:00:00.000000000 Z
11
+ date: 2024-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake