kettle-jem 7.1.28 → 7.1.30
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +220 -1
- data/README.md +2 -114
- data/lib/kettle/jem/maintenance_changelog.rb +1 -1
- data/lib/kettle/jem/relative_paths.rb +61 -0
- data/lib/kettle/jem/tasks/install_task.rb +9 -5
- data/lib/kettle/jem/tasks/prepare_task.rb +29 -10
- data/lib/kettle/jem/tasks/template_task.rb +18 -3
- data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +1 -1
- data/lib/kettle/jem/templates/.git-hooks/prepare-commit-msg.example +3 -4
- data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +24 -2
- data/lib/kettle/jem/templates/.github/workflows/current.yml.example +13 -14
- data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +8 -5
- data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +4 -1
- data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +16 -66
- data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +22 -1
- data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +2 -1
- data/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +9 -3
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/style.yml.example +5 -2
- data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +18 -2
- data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +12 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +6 -2
- data/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +19 -0
- data/lib/kettle/jem/templates/Appraisal.root.gemfile.example +2 -1
- data/lib/kettle/jem/templates/Appraisals.example +4 -1
- data/lib/kettle/jem/templates/CHANGELOG.transfer.md +6 -0
- data/lib/kettle/jem/templates/Gemfile.example +12 -3
- data/lib/kettle/jem/templates/README.md.example +5 -5
- data/lib/kettle/jem/templates/Rakefile.example +2 -0
- data/lib/kettle/jem/templates/bin/turbo_tests2.example +14 -0
- data/lib/kettle/jem/templates/gem.gemspec.example +6 -6
- data/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +1 -1
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +10 -12
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +5 -5
- data/lib/kettle/jem/templates/gemfiles/modular/ostruct/r4/v0.6.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +15 -8
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +7 -1
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +3 -2
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +18 -19
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r4/libs.gemfile.example +1 -0
- data/lib/kettle/jem/templates/mise.toml.example +1 -1
- data/lib/kettle/jem/templates/mise.toml.no-osc.example +1 -1
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +4 -3
- data/lib/kettle/jem/templates/shim/Gemfile.example +9 -3
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +3 -3
- data/lib/kettle/jem/version.rb +1 -1
- data/lib/kettle/jem.rb +1214 -723
- data.tar.gz.sig +0 -0
- metadata +28 -67
- metadata.gz.sig +0 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +0 -92
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_0.gemfile.example +0 -6
|
@@ -4,6 +4,15 @@ permissions:
|
|
|
4
4
|
contents: read
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
8
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
9
|
+
# Each turbo_tests2 worker is a full JVM subprocess; without a heap cap
|
|
10
|
+
# JRuby defaults to 1/4 of runner RAM per worker, and concurrent workers
|
|
11
|
+
# get OOM-killed silently mid-run (watchdog then reports total silence).
|
|
12
|
+
JRUBY_OPTS: "-J-Xmx1280m"
|
|
13
|
+
# Fewer, smaller JVM workers: bound workers x per-worker heap under the
|
|
14
|
+
# runner RAM so the kernel OOM killer never silences workers mid-run.
|
|
15
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
7
16
|
K_SOUP_COV_DO: false
|
|
8
17
|
|
|
9
18
|
on:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'jruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'jruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-latest
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -53,7 +63,7 @@ jobs:
|
|
|
53
63
|
|
|
54
64
|
- name: Setup Ruby & RubyGems
|
|
55
65
|
if: ${{ !env.ACT }}
|
|
56
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
66
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
57
67
|
with:
|
|
58
68
|
ruby-version: ${{ matrix.ruby }}
|
|
59
69
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -74,7 +84,10 @@ jobs:
|
|
|
74
84
|
id: bundleAppraisalAttempt2
|
|
75
85
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
76
86
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
77
|
-
run:
|
|
87
|
+
run: |
|
|
88
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
89
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
90
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
78
91
|
|
|
79
92
|
- name: Restore RSpec status log
|
|
80
93
|
if: "${{!env.ACT}}"
|
|
@@ -32,7 +32,18 @@ jobs:
|
|
|
32
32
|
with:
|
|
33
33
|
persist-credentials: false
|
|
34
34
|
|
|
35
|
-
-
|
|
35
|
+
# This action is a composite that builds license-eye from source on every
|
|
36
|
+
# run, and its own cache is broken upstream: dependency/action.yml passes
|
|
37
|
+
# cache-dependency-path ${{ github.action_path }}/go.sum, but go.sum lives
|
|
38
|
+
# at the action's repository root, not in dependency/ (404 vs 200). So
|
|
39
|
+
# setup-go logs "Restore cache failed: Some specified paths were not
|
|
40
|
+
# resolved" and the module cache never restores, making each run
|
|
41
|
+
# re-download ~35 Go modules and re-run make. That leaves every run
|
|
42
|
+
# exposed to a transient proxy.golang.org error such as
|
|
43
|
+
# "stream error: INTERNAL_ERROR; received from peer", which fails the job
|
|
44
|
+
# on an otherwise healthy repository. Retry once before failing.
|
|
45
|
+
- name: "[Attempt 1] Check Dependencies' License"
|
|
46
|
+
id: licenseEyeAttempt1
|
|
36
47
|
uses: apache/skywalking-eyes/dependency@a196742f472feaffafea537ce5a2a4c3c53a8de4 # v0.9.0
|
|
37
48
|
with:
|
|
38
49
|
config: .licenserc.yaml
|
|
@@ -41,3 +52,13 @@ jobs:
|
|
|
41
52
|
# only when License-Eye has a usable main-license matrix; otherwise
|
|
42
53
|
# resolve mode records dependency licenses without false failures.
|
|
43
54
|
flags: "{KJ|LICENSE_EYE:FLAGS}"
|
|
55
|
+
continue-on-error: true
|
|
56
|
+
|
|
57
|
+
- name: "[Attempt 2] Check Dependencies' License"
|
|
58
|
+
id: licenseEyeAttempt2
|
|
59
|
+
if: ${{ steps.licenseEyeAttempt1.outcome == 'failure' }}
|
|
60
|
+
uses: apache/skywalking-eyes/dependency@a196742f472feaffafea537ce5a2a4c3c53a8de4 # v0.9.0
|
|
61
|
+
with:
|
|
62
|
+
config: .licenserc.yaml
|
|
63
|
+
mode: "{KJ|LICENSE_EYE:MODE}"
|
|
64
|
+
flags: "{KJ|LICENSE_EYE:FLAGS}"
|
|
@@ -57,6 +57,7 @@ jobs:
|
|
|
57
57
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
58
58
|
name: Default rake task w/ main Gemfile.lock ${{ matrix.name_extra || '' }}
|
|
59
59
|
runs-on: ubuntu-latest
|
|
60
|
+
timeout-minutes: 30
|
|
60
61
|
continue-on-error: ${{ matrix.experimental }}
|
|
61
62
|
strategy:
|
|
62
63
|
fail-fast: false
|
|
@@ -76,7 +77,7 @@ jobs:
|
|
|
76
77
|
persist-credentials: false
|
|
77
78
|
|
|
78
79
|
- name: Setup Ruby & RubyGems
|
|
79
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
80
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
80
81
|
with:
|
|
81
82
|
ruby-version: ${{ matrix.ruby }}
|
|
82
83
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
with:
|
|
21
21
|
persist-credentials: false
|
|
22
22
|
- name: Setup Ruby & RubyGems
|
|
23
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
23
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
24
24
|
with:
|
|
25
25
|
ruby-version: ruby
|
|
26
26
|
rubygems: default
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-22.04
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -64,7 +67,10 @@ jobs:
|
|
|
64
67
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
68
|
id: bundleAppraisalAttempt2
|
|
66
69
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
-
run:
|
|
70
|
+
run: |
|
|
71
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
72
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
73
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
74
|
|
|
69
75
|
- name: Restore RSpec status log
|
|
70
76
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-22.04
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -68,7 +71,10 @@ jobs:
|
|
|
68
71
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
69
72
|
id: bundleAppraisalAttempt2
|
|
70
73
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
71
|
-
run:
|
|
74
|
+
run: |
|
|
75
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
76
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
77
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
72
78
|
|
|
73
79
|
- name: Restore RSpec status log
|
|
74
80
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-22.04
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -68,7 +71,10 @@ jobs:
|
|
|
68
71
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
69
72
|
id: bundleAppraisalAttempt2
|
|
70
73
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
71
|
-
run:
|
|
74
|
+
run: |
|
|
75
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
76
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
77
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
72
78
|
|
|
73
79
|
- name: Restore RSpec status log
|
|
74
80
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-22.04
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -68,7 +71,10 @@ jobs:
|
|
|
68
71
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
69
72
|
id: bundleAppraisalAttempt2
|
|
70
73
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
71
|
-
run:
|
|
74
|
+
run: |
|
|
75
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
76
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
77
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
72
78
|
|
|
73
79
|
- name: Restore RSpec status log
|
|
74
80
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-22.04
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -68,7 +71,10 @@ jobs:
|
|
|
68
71
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
69
72
|
id: bundleAppraisalAttempt2
|
|
70
73
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
71
|
-
run:
|
|
74
|
+
run: |
|
|
75
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
76
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
77
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
72
78
|
|
|
73
79
|
- name: Restore RSpec status log
|
|
74
80
|
if: "${{!env.ACT}}"
|
|
@@ -4,6 +4,8 @@ permissions:
|
|
|
4
4
|
contents: read
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
8
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
7
9
|
K_SOUP_COV_DO: false
|
|
8
10
|
|
|
9
11
|
on:
|
|
@@ -30,6 +32,7 @@ jobs:
|
|
|
30
32
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
31
33
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
34
|
runs-on: ubuntu-22.04
|
|
35
|
+
timeout-minutes: 30
|
|
33
36
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
37
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
38
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -50,7 +53,7 @@ jobs:
|
|
|
50
53
|
persist-credentials: false
|
|
51
54
|
|
|
52
55
|
- name: Setup Ruby & RubyGems
|
|
53
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
56
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
54
57
|
with:
|
|
55
58
|
ruby-version: ${{ matrix.ruby }}
|
|
56
59
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -67,8 +70,11 @@ jobs:
|
|
|
67
70
|
|
|
68
71
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
69
72
|
id: bundleAppraisalAttempt2
|
|
70
|
-
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure'
|
|
71
|
-
run:
|
|
73
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
74
|
+
run: |
|
|
75
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
76
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
77
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
72
78
|
|
|
73
79
|
- name: Restore RSpec status log
|
|
74
80
|
if: "${{!env.ACT}}"
|
|
@@ -4,6 +4,8 @@ permissions:
|
|
|
4
4
|
contents: read
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
8
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
7
9
|
K_SOUP_COV_DO: false
|
|
8
10
|
|
|
9
11
|
on:
|
|
@@ -30,6 +32,7 @@ jobs:
|
|
|
30
32
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
31
33
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
34
|
runs-on: ubuntu-22.04
|
|
35
|
+
timeout-minutes: 30
|
|
33
36
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
37
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
38
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -50,7 +53,7 @@ jobs:
|
|
|
50
53
|
persist-credentials: false
|
|
51
54
|
|
|
52
55
|
- name: Setup Ruby & RubyGems
|
|
53
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
56
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
54
57
|
with:
|
|
55
58
|
ruby-version: ${{ matrix.ruby }}
|
|
56
59
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -67,7 +70,10 @@ jobs:
|
|
|
67
70
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
68
71
|
id: bundleAppraisalAttempt2
|
|
69
72
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
70
|
-
run:
|
|
73
|
+
run: |
|
|
74
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
75
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
76
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
71
77
|
|
|
72
78
|
- name: Restore RSpec status log
|
|
73
79
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-latest
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -64,7 +67,10 @@ jobs:
|
|
|
64
67
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
68
|
id: bundleAppraisalAttempt2
|
|
66
69
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
-
run:
|
|
70
|
+
run: |
|
|
71
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
72
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
73
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
74
|
|
|
69
75
|
- name: Restore RSpec status log
|
|
70
76
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-latest
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -64,7 +67,10 @@ jobs:
|
|
|
64
67
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
68
|
id: bundleAppraisalAttempt2
|
|
66
69
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
-
run:
|
|
70
|
+
run: |
|
|
71
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
72
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
73
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
74
|
|
|
69
75
|
- name: Restore RSpec status log
|
|
70
76
|
if: "${{!env.ACT}}"
|
|
@@ -27,9 +27,12 @@ jobs:
|
|
|
27
27
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
28
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
29
|
runs-on: ubuntu-latest
|
|
30
|
+
timeout-minutes: 30
|
|
30
31
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
32
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
33
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
34
|
+
# Kill stalled test workers instead of hanging until the CI job timeout.
|
|
35
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 900
|
|
33
36
|
strategy:
|
|
34
37
|
matrix:
|
|
35
38
|
include:
|
|
@@ -47,7 +50,7 @@ jobs:
|
|
|
47
50
|
persist-credentials: false
|
|
48
51
|
|
|
49
52
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
54
|
with:
|
|
52
55
|
ruby-version: ${{ matrix.ruby }}
|
|
53
56
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -64,7 +67,10 @@ jobs:
|
|
|
64
67
|
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
68
|
id: bundleAppraisalAttempt2
|
|
66
69
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
-
run:
|
|
70
|
+
run: |
|
|
71
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
72
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
73
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
74
|
|
|
69
75
|
- name: Restore RSpec status log
|
|
70
76
|
if: "${{!env.ACT}}"
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
persist-credentials: false
|
|
48
48
|
|
|
49
49
|
- name: Setup Ruby & RubyGems
|
|
50
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
50
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
51
51
|
with:
|
|
52
52
|
ruby-version: ${{ matrix.ruby }}
|
|
53
53
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -67,7 +67,10 @@ jobs:
|
|
|
67
67
|
id: bundleAppraisalAttempt2
|
|
68
68
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
69
69
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
70
|
-
run:
|
|
70
|
+
run: |
|
|
71
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
72
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
73
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
71
74
|
|
|
72
75
|
- name: Run ${{ matrix.appraisal }} checks via ${{ matrix.exec_cmd }}
|
|
73
76
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -52,7 +52,7 @@ jobs:
|
|
|
52
52
|
persist-credentials: false
|
|
53
53
|
|
|
54
54
|
- name: Setup Ruby & RubyGems
|
|
55
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
55
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
56
56
|
with:
|
|
57
57
|
ruby-version: ${{ matrix.ruby }}
|
|
58
58
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -80,7 +80,23 @@ jobs:
|
|
|
80
80
|
id: bundleAppraisalAttempt2
|
|
81
81
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
82
82
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
83
|
-
run:
|
|
83
|
+
run: |
|
|
84
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
85
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
86
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
87
|
+
|
|
88
|
+
- name: Cache tree-sitter-language-pack grammars
|
|
89
|
+
if: "${{!env.ACT}}"
|
|
90
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
91
|
+
with:
|
|
92
|
+
# TSLP hot-loads grammars on demand into a versioned cache dir.
|
|
93
|
+
# Caching it keeps the self-test off the network in the common case;
|
|
94
|
+
# a miss falls back to the in-run prefetch (kettle-jem tslp_prefetch
|
|
95
|
+
# phase) with retries and attributable diagnostics.
|
|
96
|
+
path: ~/.cache/tree-sitter-language-pack
|
|
97
|
+
key: tslp-grammars-${{runner.os}}-${{hashFiles('gemfiles/templating.gemfile.lock','Gemfile.lock')}}
|
|
98
|
+
restore-keys: |
|
|
99
|
+
tslp-grammars-${{runner.os}}-
|
|
84
100
|
|
|
85
101
|
- name: Templating self-test for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
86
102
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -5,6 +5,15 @@ permissions:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
K_SOUP_COV_DO: false
|
|
8
|
+
# TruffleRuby intermittently stalls the parallel test worker pool; keep
|
|
9
|
+
# this lane serial while maintained runtimes exercise the parallel runner.
|
|
10
|
+
# Two workers: TruffleRuby parallelism is spawn-based like every other
|
|
11
|
+
# engine; serial-only lanes waste CI time and trip the stall watchdog on
|
|
12
|
+
# legitimately long tests.
|
|
13
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
14
|
+
# Serial lanes can legitimately run one long, silent test; give the stall
|
|
15
|
+
# watchdog a wider berth than the 4.0 default of 900s.
|
|
16
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
8
17
|
|
|
9
18
|
on:
|
|
10
19
|
push:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-latest
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -53,7 +63,7 @@ jobs:
|
|
|
53
63
|
|
|
54
64
|
- name: Setup Ruby & RubyGems
|
|
55
65
|
if: ${{ !env.ACT }}
|
|
56
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
66
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
57
67
|
with:
|
|
58
68
|
ruby-version: ${{ matrix.ruby }}
|
|
59
69
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -74,7 +84,10 @@ jobs:
|
|
|
74
84
|
id: bundleAppraisalAttempt2
|
|
75
85
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
76
86
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
77
|
-
run:
|
|
87
|
+
run: |
|
|
88
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
89
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
90
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
78
91
|
|
|
79
92
|
- name: Restore RSpec status log
|
|
80
93
|
if: "${{!env.ACT}}"
|
|
@@ -5,6 +5,15 @@ permissions:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
K_SOUP_COV_DO: false
|
|
8
|
+
# TruffleRuby intermittently stalls the parallel test worker pool; keep
|
|
9
|
+
# this lane serial while maintained runtimes exercise the parallel runner.
|
|
10
|
+
# Two workers: TruffleRuby parallelism is spawn-based like every other
|
|
11
|
+
# engine; serial-only lanes waste CI time and trip the stall watchdog on
|
|
12
|
+
# legitimately long tests.
|
|
13
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
14
|
+
# Serial lanes can legitimately run one long, silent test; give the stall
|
|
15
|
+
# watchdog a wider berth than the 4.0 default of 900s.
|
|
16
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
8
17
|
|
|
9
18
|
on:
|
|
10
19
|
push:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-22.04
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -54,7 +64,7 @@ jobs:
|
|
|
54
64
|
|
|
55
65
|
- name: Setup Ruby & RubyGems
|
|
56
66
|
if: ${{ !env.ACT }}
|
|
57
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
67
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
58
68
|
with:
|
|
59
69
|
ruby-version: ${{ matrix.ruby }}
|
|
60
70
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -75,7 +85,10 @@ jobs:
|
|
|
75
85
|
id: bundleAppraisalAttempt2
|
|
76
86
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
77
87
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
78
|
-
run:
|
|
88
|
+
run: |
|
|
89
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
90
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
91
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
79
92
|
|
|
80
93
|
- name: Restore RSpec status log
|
|
81
94
|
if: "${{!env.ACT}}"
|