rails-local-ci 0.1.1 → 0.2.0
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 +4 -4
- data/README.md +22 -12
- data/lib/active_support/continuous_integration/group.rb +2 -2
- data/lib/active_support/continuous_integration.rb +1 -1
- metadata +14 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bea5f0d0292bb64efb5fd49d72374f2d9e6435df2554d1d89fabdb43009b3343
|
|
4
|
+
data.tar.gz: e11563b36687390ee1bb34e818ec898ef221128a4904b2c0b06fdd3ed6bfb2bb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 03b4976064f75468c853a40ca407cc42d2bdec6fdea694667e1910ecd07da82eb8e53f0982bb2084e059442e698e7eff5e21cc90f38a36081817c66d4b42fe6c
|
|
7
|
+
data.tar.gz: c7b477829b1ba91ed43e9b5772cc753ea9ffa66d4182a87bb8c683923b776f3207fe50ed0e7cb1e94c710ef5e5c6f26591d1778ce84d38408a0301a4dafcc844
|
data/README.md
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# rails-local-ci
|
|
2
2
|
|
|
3
|
-
[](https://rubygems.org/gems/rails-local-ci)
|
|
4
|
+
[](https://rubygems.org/gems/rails-local-ci)
|
|
4
5
|
[](https://github.com/its-magdy/rails-local-ci/actions/workflows/ci.yml)
|
|
5
6
|
|
|
6
|
-
> Backport of Rails
|
|
7
|
+
> Backport of Rails' `ActiveSupport::ContinuousIntegration` (as on Rails `main`) for Rails 5.2–8.1
|
|
7
8
|
|
|
8
|
-
Rails 8.1 introduced a standardized `bin/ci` script and `ActiveSupport::ContinuousIntegration` class ([PR #54693](https://github.com/rails/rails/pull/54693)) that runs the same CI steps locally and in the cloud. This gem ships that class for apps on Rails 5.2–
|
|
9
|
+
Rails 8.1 introduced a standardized `bin/ci` script and `ActiveSupport::ContinuousIntegration` class ([PR #54693](https://github.com/rails/rails/pull/54693)) that runs the same CI steps locally and in the cloud. This gem ships that class for apps on Rails 5.2–8.1 so you don't have to wait for an upgrade.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
The gem tracks Rails `main`, so it also includes features that came after 8.1 shipped: parallel `group`s, fail-fast mode, and the end-of-run failure summary. Rails 8.1.x doesn't have them, so the gem is useful on 8.1 too.
|
|
12
|
+
|
|
13
|
+
Once you upgrade to Rails 8.2, remove the gem. `bin/ci` and `config/ci.rb` stay unchanged because Rails provides the class at the same load path.
|
|
11
14
|
|
|
12
15
|
---
|
|
13
16
|
|
|
@@ -22,7 +25,7 @@ When you do upgrade to Rails 8.1, remove the gem — `bin/ci` and `config/ci.rb`
|
|
|
22
25
|
- [Commit Signoff](#commit-signoff)
|
|
23
26
|
- [CI Integration](#ci-integration)
|
|
24
27
|
- [Running Tests](#running-tests)
|
|
25
|
-
- [Upgrading to Rails 8.
|
|
28
|
+
- [Upgrading to Rails 8.2](#upgrading-to-rails-82)
|
|
26
29
|
- [Compatibility](#compatibility)
|
|
27
30
|
- [How It Works](#how-it-works)
|
|
28
31
|
- [License](#license)
|
|
@@ -32,7 +35,7 @@ When you do upgrade to Rails 8.1, remove the gem — `bin/ci` and `config/ci.rb`
|
|
|
32
35
|
## Prerequisites
|
|
33
36
|
|
|
34
37
|
- Ruby >= 2.4
|
|
35
|
-
- Rails >= 5.2 and < 8.
|
|
38
|
+
- Rails >= 5.2 and < 8.2
|
|
36
39
|
|
|
37
40
|
---
|
|
38
41
|
|
|
@@ -276,12 +279,18 @@ bundle exec ruby test/continuous_integration_test.rb
|
|
|
276
279
|
|
|
277
280
|
---
|
|
278
281
|
|
|
279
|
-
## Upgrading to Rails 8.
|
|
282
|
+
## Upgrading to Rails 8.2
|
|
280
283
|
|
|
281
284
|
1. Remove `gem "rails-local-ci"` from your `Gemfile`
|
|
282
285
|
2. Run `bundle install`
|
|
283
286
|
|
|
284
|
-
`bin/ci` and `config/ci.rb` require no changes. Rails 8.
|
|
287
|
+
`bin/ci` and `config/ci.rb` require no changes. Rails 8.2 (in development on Rails `main` as of Nov 2026) ships `ActiveSupport::ContinuousIntegration` at the same load path this gem uses, with `group`, fail-fast, and the failure summary built in.
|
|
288
|
+
|
|
289
|
+
### Rails 8.1
|
|
290
|
+
|
|
291
|
+
Keep the gem on Rails 8.1. Rails 8.1.x (checked through 8.1.4) only ships the original `step`, `success?`, `heading`, `echo`, and `failure` DSL. Without the gem, a `config/ci.rb` that uses `group` fails with `NoMethodError`, and `-f` / `--fail-fast` is silently ignored. With the gem installed, its copy of the class takes precedence over the Rails 8.1 built-in, because Bundler puts the gem's `lib` ahead of Active Support's on the load path. That holds for the normal boot order, where `bundler/setup` runs (via `config/boot`) before anything loads the class, as the generated `bin/ci` does. If something requires Rails' built-in copy first, or loads it by absolute path, the gem cannot replace it.
|
|
292
|
+
|
|
293
|
+
If you'd rather drop the gem on 8.1, replace each `group` block with the `step`s inside it, and stop relying on `-f`.
|
|
285
294
|
|
|
286
295
|
---
|
|
287
296
|
|
|
@@ -289,23 +298,24 @@ bundle exec ruby test/continuous_integration_test.rb
|
|
|
289
298
|
|
|
290
299
|
| Rails | Ruby | Status |
|
|
291
300
|
|-------|-------|--------|
|
|
301
|
+
| 8.1 | 3.2+ | Tested |
|
|
292
302
|
| 7.2 | 3.1+ | Tested |
|
|
293
|
-
| 7.1 | 3.0+ |
|
|
303
|
+
| 7.1 | 3.0+ | Tested |
|
|
294
304
|
| 7.0 | 2.7+ | Compatible |
|
|
295
305
|
| 6.1 | 2.7+ | Compatible |
|
|
296
306
|
| 6.0 | 2.7+ | Compatible |
|
|
297
307
|
| 5.2 | 2.4+ | Compatible |
|
|
298
|
-
| 8.
|
|
308
|
+
| 8.2+ | — | Use built-in — remove this gem |
|
|
299
309
|
|
|
300
310
|
---
|
|
301
311
|
|
|
302
312
|
## How It Works
|
|
303
313
|
|
|
304
|
-
The gem places `ActiveSupport::ContinuousIntegration` at `lib/active_support/continuous_integration.rb` — the identical load path Rails
|
|
314
|
+
The gem places `ActiveSupport::ContinuousIntegration` at `lib/active_support/continuous_integration.rb` — the identical load path Rails uses. The generated `bin/ci` does:
|
|
305
315
|
|
|
306
316
|
```ruby
|
|
307
317
|
require_relative "../config/boot"
|
|
308
|
-
require "active_support/continuous_integration" # resolved by this gem, or Rails
|
|
318
|
+
require "active_support/continuous_integration" # resolved by this gem, or the Rails built-in once the gem is removed
|
|
309
319
|
|
|
310
320
|
CI = ActiveSupport::ContinuousIntegration
|
|
311
321
|
require_relative "../config/ci.rb"
|
|
@@ -79,7 +79,7 @@ module ActiveSupport
|
|
|
79
79
|
def execute_task(type, title, payload)
|
|
80
80
|
case type
|
|
81
81
|
when :step then execute_step(title, payload)
|
|
82
|
-
when :group then execute_group(
|
|
82
|
+
when :group then execute_group(payload)
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
85
|
|
|
@@ -100,7 +100,7 @@ module ActiveSupport
|
|
|
100
100
|
success
|
|
101
101
|
end
|
|
102
102
|
|
|
103
|
-
def execute_group(
|
|
103
|
+
def execute_group(block)
|
|
104
104
|
all_success = true
|
|
105
105
|
TaskCollector.new(&block).tasks.each do |type, title, payload|
|
|
106
106
|
unless execute_task(type, title, payload)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails-local-ci
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mohamed Magdy Omar
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-11-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
version: '5.2'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '8.
|
|
22
|
+
version: '8.2'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,11 +29,11 @@ dependencies:
|
|
|
29
29
|
version: '5.2'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '8.
|
|
32
|
+
version: '8.2'
|
|
33
33
|
description: Ships ActiveSupport::ContinuousIntegration and a generator that installs
|
|
34
|
-
bin/ci + config/ci.rb. Any Rails
|
|
35
|
-
|
|
36
|
-
the gem, zero code changes.
|
|
34
|
+
bin/ci + config/ci.rb. Any Rails 5.2–8.1 app can `gem 'rails-local-ci'` and get
|
|
35
|
+
the full Local CI DX from Rails main (parallel groups, fail-fast, failure summary).
|
|
36
|
+
Upgrading to Rails 8.2 later = just remove the gem, zero code changes.
|
|
37
37
|
email:
|
|
38
38
|
- mm.medany96@gmail.com
|
|
39
39
|
executables: []
|
|
@@ -52,7 +52,11 @@ files:
|
|
|
52
52
|
homepage: https://github.com/its-magdy/rails-local-ci
|
|
53
53
|
licenses:
|
|
54
54
|
- MIT
|
|
55
|
-
metadata:
|
|
55
|
+
metadata:
|
|
56
|
+
rubygems_mfa_required: 'true'
|
|
57
|
+
source_code_uri: https://github.com/its-magdy/rails-local-ci
|
|
58
|
+
changelog_uri: https://github.com/its-magdy/rails-local-ci/blob/main/CHANGELOG.md
|
|
59
|
+
bug_tracker_uri: https://github.com/its-magdy/rails-local-ci/issues
|
|
56
60
|
post_install_message:
|
|
57
61
|
rdoc_options: []
|
|
58
62
|
require_paths:
|
|
@@ -71,6 +75,6 @@ requirements: []
|
|
|
71
75
|
rubygems_version: 3.5.22
|
|
72
76
|
signing_key:
|
|
73
77
|
specification_version: 4
|
|
74
|
-
summary: Backport of Rails
|
|
75
|
-
Rails 5.2–
|
|
78
|
+
summary: Backport of Rails Local CI (ActiveSupport::ContinuousIntegration, as on Rails
|
|
79
|
+
main) for Rails 5.2–8.1
|
|
76
80
|
test_files: []
|