kettle-jem 7.0.0 → 7.1.3
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 +1505 -0
- data/LICENSE.md +13 -0
- data/README.md +794 -0
- data/exe/kettle-jem +20 -0
- data/lib/kettle/jem/cli.rb +334 -0
- data/lib/kettle/jem/license_txt_migrator.rb +33 -0
- data/lib/kettle/jem/rakelib/install.rake +10 -0
- data/lib/kettle/jem/rakelib/prepare.rake +10 -0
- data/lib/kettle/jem/rakelib/selftest.rake +10 -0
- data/lib/kettle/jem/rakelib/template.rake +10 -0
- data/lib/kettle/jem/tasks/install_task.rb +2178 -0
- data/lib/kettle/jem/tasks/prepare_task.rb +274 -0
- data/lib/kettle/jem/tasks/self_test_task.rb +256 -0
- data/lib/kettle/jem/tasks/template_task.rb +124 -0
- data/lib/kettle/jem/tasks.rb +6 -0
- data/lib/kettle/jem/templates/.aiignore.example +19 -0
- data/lib/kettle/jem/templates/.config/mise/env.sh +26 -0
- data/lib/kettle/jem/templates/.devcontainer/apt-install/devcontainer-feature.json.example +9 -0
- data/lib/kettle/jem/templates/.devcontainer/apt-install/install.sh.example +19 -0
- data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +27 -0
- data/lib/kettle/jem/templates/.devcontainer/scripts/setup-tree-sitter.sh.example +210 -0
- data/lib/kettle/jem/templates/.env.local.example +67 -0
- data/lib/kettle/jem/templates/.envrc.example +4 -0
- data/lib/kettle/jem/templates/.envrc.no-osc.example +4 -0
- data/lib/kettle/jem/templates/.gemrc.example +1 -0
- data/lib/kettle/jem/templates/.git-hooks/commit-msg.example +60 -0
- data/lib/kettle/jem/templates/.git-hooks/commit-subjects-goalie.txt.example +8 -0
- data/lib/kettle/jem/templates/.git-hooks/footer-template.erb.txt.example +16 -0
- data/lib/kettle/jem/templates/.git-hooks/prepare-commit-msg.example +9 -0
- data/lib/kettle/jem/templates/.github/.codecov.yml.example +14 -0
- data/lib/kettle/jem/templates/.github/FUNDING.yml.example +10 -0
- data/lib/kettle/jem/templates/.github/FUNDING.yml.no-osc.example +10 -0
- data/lib/kettle/jem/templates/.github/copilot_instructions.md.example +1 -0
- data/lib/kettle/jem/templates/.github/dependabot.yml.example +13 -0
- data/lib/kettle/jem/templates/.github/workflows/auto-assign.yml.example +21 -0
- data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +102 -0
- data/lib/kettle/jem/templates/.github/workflows/current.yml.example +86 -0
- data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +249 -0
- data/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example +22 -0
- data/lib/kettle/jem/templates/.github/workflows/discord-notifier.yml.example +39 -0
- data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +81 -0
- data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +212 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +90 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +43 -0
- data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +89 -0
- data/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +44 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +85 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +83 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/style.yml.example +78 -0
- data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +86 -0
- data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +92 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +92 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +78 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +96 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +93 -0
- data/lib/kettle/jem/templates/.gitignore.example +53 -0
- data/lib/kettle/jem/templates/.gitlab-ci.yml.example +134 -0
- data/lib/kettle/jem/templates/.idea/.gitignore.example +44 -0
- data/lib/kettle/jem/templates/.licenserc.yaml.example +8 -0
- data/lib/kettle/jem/templates/.opencollective.yml.example +3 -0
- data/lib/kettle/jem/templates/.qlty/qlty.toml.example +79 -0
- data/lib/kettle/jem/templates/.rspec.example +10 -0
- data/lib/kettle/jem/templates/.rubocop.example +1 -0
- data/lib/kettle/jem/templates/.rubocop.yml.example +47 -0
- data/lib/kettle/jem/templates/.rubocop_rspec.yml.example +55 -0
- data/lib/kettle/jem/templates/.simplecov.example +18 -0
- data/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example +86 -0
- data/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +519 -0
- data/lib/kettle/jem/templates/.yard-lint.yml.example +54 -0
- data/lib/kettle/jem/templates/.yardignore.example +13 -0
- data/lib/kettle/jem/templates/.yardopts.example +14 -0
- data/lib/kettle/jem/templates/AGENTS.md.example +283 -0
- data/lib/kettle/jem/templates/AGPL-3.0-only.md.example +235 -0
- data/lib/kettle/jem/templates/Appraisal.root.gemfile.example +26 -0
- data/lib/kettle/jem/templates/Appraisals.example +150 -0
- data/lib/kettle/jem/templates/Big-Time-Public-License.md.example +99 -0
- data/lib/kettle/jem/templates/CHANGELOG.md.example +33 -0
- data/lib/kettle/jem/templates/CHANGELOG.transfer.md +109 -0
- data/lib/kettle/jem/templates/CITATION.cff.example +20 -0
- data/lib/kettle/jem/templates/CODE_OF_CONDUCT.md.example +134 -0
- data/lib/kettle/jem/templates/CONTRIBUTING.md.example +292 -0
- data/lib/kettle/jem/templates/FUNDING.md.example +74 -0
- data/lib/kettle/jem/templates/FUNDING.md.no-osc.example +63 -0
- data/lib/kettle/jem/templates/Gemfile.example +52 -0
- data/lib/kettle/jem/templates/IRP.md.example +34 -0
- data/lib/kettle/jem/templates/LICENSE.md.example +3 -0
- data/lib/kettle/jem/templates/MIT.md.example +21 -0
- data/lib/kettle/jem/templates/PolyForm-Noncommercial-1.0.0.md.example +131 -0
- data/lib/kettle/jem/templates/PolyForm-Small-Business-1.0.0.md.example +121 -0
- data/lib/kettle/jem/templates/README.md.example +544 -0
- data/lib/kettle/jem/templates/REEK +0 -0
- data/lib/kettle/jem/templates/RUBOCOP.md.example +78 -0
- data/lib/kettle/jem/templates/Rakefile.example +163 -0
- data/lib/kettle/jem/templates/SECURITY.md.example +21 -0
- data/lib/kettle/jem/templates/bin/setup.example +36 -0
- data/lib/kettle/jem/templates/certs/pboling.pem.example +27 -0
- data/lib/kettle/jem/templates/gem.gemspec.example +161 -0
- data/lib/kettle/jem/templates/gemfiles/modular/benchmark/r4/v0.5.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/benchmark/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/cgi/r4/v0.5.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/cgi/vHEAD.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/changelog.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +14 -0
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +34 -0
- data/lib/kettle/jem/templates/gemfiles/modular/debug.gemfile.example +22 -0
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +24 -0
- data/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example +20 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2/v3.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2.3/default.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2.6/v2.2.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r3.1/v4.0.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_22_3.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_0.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_1.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r2/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r3/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r4/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/optional.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.3/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.4/recording.gemfile.example +18 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.5/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r3/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r4/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/rspec.gemfile.example +4 -0
- data/lib/kettle/jem/templates/gemfiles/modular/runtime_heads.gemfile.example +14 -0
- data/lib/kettle/jem/templates/gemfiles/modular/shunted.gemfile.example +21 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r2/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile.example +4 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r3/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r4/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +33 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +26 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +34 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +73 -0
- data/lib/kettle/jem/templates/gemfiles/modular/webrick/r4/v1.9.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/webrick/vHEAD.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.3/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.4/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.6/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r3/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r3.1/libs.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r4/libs.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/vHEAD.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs.gemfile.example +12 -0
- data/lib/kettle/jem/templates/lib/gem/version.rb.example +1 -0
- data/lib/kettle/jem/templates/lib/gem/version_gem.rb.example +1 -0
- data/lib/kettle/jem/templates/mise.toml.example +25 -0
- data/lib/kettle/jem/templates/mise.toml.no-osc.example +25 -0
- data/lib/kettle/jem/templates/parsers.toml.example +19 -0
- data/lib/kettle/jem/templates/readme/partials/basic_usage.md.example +28 -0
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +112 -0
- data/lib/kettle/jem/templates/readme/partials/synopsis.md.example +3 -0
- data/lib/kettle/jem/templates/shim/.github/workflows/current.yml.example +40 -0
- data/lib/kettle/jem/templates/shim/.rspec.example +5 -0
- data/lib/kettle/jem/templates/shim/.structuredmerge/kettle-jem.yml.example +28 -0
- data/lib/kettle/jem/templates/shim/CHANGELOG.md.example +9 -0
- data/lib/kettle/jem/templates/shim/Gemfile.example +14 -0
- data/lib/kettle/jem/templates/shim/README.md.example +25 -0
- data/lib/kettle/jem/templates/shim/Rakefile.example +8 -0
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +45 -0
- data/lib/kettle/jem/templates/shim/lib/compat_require.rb.example +3 -0
- data/lib/kettle/jem/templates/shim/lib/entrypoint.rb.example +3 -0
- data/lib/kettle/jem/templates/shim/lib/version.rb.example +1 -0
- data/lib/kettle/jem/templates/shim/spec/shim_spec.rb.example +15 -0
- data/lib/kettle/jem/templates/shim/spec/spec_helper.rb.example +23 -0
- data/lib/kettle/jem/templates/sig/gem.rbs.example +1 -0
- data/lib/kettle/jem/templates/spec/README.md.example +28 -0
- data/lib/kettle/jem/templates/spec/spec_helper.rb.example +39 -0
- data/lib/kettle/jem/version.rb +5 -3
- data/lib/kettle/jem/version_gem.rb +8 -0
- data/lib/kettle/jem.rb +18540 -1517
- data/lib/kettle-jem.rb +2 -1
- data/sig/kettle/jem.rbs +8 -0
- data.tar.gz.sig +0 -0
- metadata +870 -32
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
name: Heads
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
K_SOUP_COV_DO: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- 'main'
|
|
13
|
+
- '*-stable'
|
|
14
|
+
tags:
|
|
15
|
+
- '!*' # Do not execute on tags
|
|
16
|
+
pull_request:
|
|
17
|
+
branches:
|
|
18
|
+
- '*'
|
|
19
|
+
# Allow manually triggering the workflow.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
23
|
+
concurrency:
|
|
24
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
25
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
26
|
+
cancel-in-progress: true
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
ruby:
|
|
30
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
31
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
fail-fast: true
|
|
38
|
+
matrix:
|
|
39
|
+
include:
|
|
40
|
+
# NOTE: Heads use default rubygems / bundler; their defaults are custom, unreleased, and from the future!
|
|
41
|
+
# ruby-head
|
|
42
|
+
- ruby: "ruby-head"
|
|
43
|
+
appraisal: "head"
|
|
44
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
45
|
+
rubygems: default
|
|
46
|
+
bundler: default
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- name: Checkout
|
|
50
|
+
if: ${{ !env.ACT }}
|
|
51
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
52
|
+
with:
|
|
53
|
+
persist-credentials: false
|
|
54
|
+
|
|
55
|
+
- name: Setup Ruby & RubyGems
|
|
56
|
+
if: ${{ !env.ACT }}
|
|
57
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
58
|
+
with:
|
|
59
|
+
ruby-version: ${{ matrix.ruby }}
|
|
60
|
+
rubygems: ${{ matrix.rubygems }}
|
|
61
|
+
bundler: ${{ matrix.bundler }}
|
|
62
|
+
bundler-cache: true
|
|
63
|
+
manual-compatibility-bundle: true
|
|
64
|
+
gem-install-retries: 7
|
|
65
|
+
|
|
66
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
67
|
+
id: bundleAppraisalAttempt1
|
|
68
|
+
if: ${{ !env.ACT }}
|
|
69
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
70
|
+
# Continue to the next step on failure
|
|
71
|
+
continue-on-error: true
|
|
72
|
+
|
|
73
|
+
# Effectively an automatic retry of the previous step.
|
|
74
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
75
|
+
id: bundleAppraisalAttempt2
|
|
76
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
77
|
+
if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
78
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
79
|
+
|
|
80
|
+
- name: Restore RSpec status log
|
|
81
|
+
if: "${{!env.ACT}}"
|
|
82
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
83
|
+
with:
|
|
84
|
+
path: .rspec_status
|
|
85
|
+
key: rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
86
|
+
restore-keys: |
|
|
87
|
+
rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
88
|
+
rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
89
|
+
|
|
90
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
91
|
+
if: ${{ !env.ACT }}
|
|
92
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
93
|
+
|
|
94
|
+
truffleruby:
|
|
95
|
+
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'))"
|
|
96
|
+
name: Specs truffleruby-head@head
|
|
97
|
+
runs-on: ubuntu-latest
|
|
98
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
99
|
+
env:
|
|
100
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
101
|
+
strategy:
|
|
102
|
+
fail-fast: true
|
|
103
|
+
matrix:
|
|
104
|
+
include:
|
|
105
|
+
- ruby: "truffleruby-head"
|
|
106
|
+
appraisal: "head"
|
|
107
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
108
|
+
rubygems: default
|
|
109
|
+
bundler: default
|
|
110
|
+
|
|
111
|
+
steps:
|
|
112
|
+
- name: Checkout
|
|
113
|
+
if: ${{ !env.ACT }}
|
|
114
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
115
|
+
with:
|
|
116
|
+
persist-credentials: false
|
|
117
|
+
|
|
118
|
+
- name: Setup Ruby & RubyGems
|
|
119
|
+
if: ${{ !env.ACT }}
|
|
120
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
121
|
+
with:
|
|
122
|
+
ruby-version: ${{ matrix.ruby }}
|
|
123
|
+
rubygems: ${{ matrix.rubygems }}
|
|
124
|
+
bundler: ${{ matrix.bundler }}
|
|
125
|
+
bundler-cache: true
|
|
126
|
+
manual-compatibility-bundle: true
|
|
127
|
+
gem-install-retries: 7
|
|
128
|
+
|
|
129
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
130
|
+
id: bundleAppraisalAttempt1
|
|
131
|
+
if: ${{ !env.ACT }}
|
|
132
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
133
|
+
continue-on-error: true
|
|
134
|
+
|
|
135
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
136
|
+
id: bundleAppraisalAttempt2
|
|
137
|
+
if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
138
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
139
|
+
|
|
140
|
+
- name: Restore RSpec status log
|
|
141
|
+
if: "${{!env.ACT}}"
|
|
142
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
143
|
+
with:
|
|
144
|
+
path: .rspec_status
|
|
145
|
+
key: rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
146
|
+
restore-keys: |
|
|
147
|
+
rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
148
|
+
rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
149
|
+
|
|
150
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
151
|
+
if: ${{ !env.ACT }}
|
|
152
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
153
|
+
|
|
154
|
+
jruby:
|
|
155
|
+
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'))"
|
|
156
|
+
name: Specs jruby-head@head
|
|
157
|
+
runs-on: ubuntu-latest
|
|
158
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
159
|
+
env:
|
|
160
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
161
|
+
strategy:
|
|
162
|
+
fail-fast: true
|
|
163
|
+
matrix:
|
|
164
|
+
include:
|
|
165
|
+
- ruby: "jruby-head"
|
|
166
|
+
appraisal: "head"
|
|
167
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
168
|
+
rubygems: default
|
|
169
|
+
bundler: default
|
|
170
|
+
|
|
171
|
+
steps:
|
|
172
|
+
- name: Checkout
|
|
173
|
+
if: ${{ !env.ACT }}
|
|
174
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
175
|
+
with:
|
|
176
|
+
persist-credentials: false
|
|
177
|
+
|
|
178
|
+
- name: Setup Ruby & RubyGems
|
|
179
|
+
if: ${{ !env.ACT }}
|
|
180
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
181
|
+
with:
|
|
182
|
+
ruby-version: ${{ matrix.ruby }}
|
|
183
|
+
rubygems: ${{ matrix.rubygems }}
|
|
184
|
+
bundler: ${{ matrix.bundler }}
|
|
185
|
+
bundler-cache: true
|
|
186
|
+
manual-compatibility-bundle: true
|
|
187
|
+
gem-install-retries: 7
|
|
188
|
+
|
|
189
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
190
|
+
id: bundleAppraisalAttempt1
|
|
191
|
+
if: ${{ !env.ACT }}
|
|
192
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
193
|
+
continue-on-error: true
|
|
194
|
+
|
|
195
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
196
|
+
id: bundleAppraisalAttempt2
|
|
197
|
+
if: ${{ !env.ACT && steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
198
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
199
|
+
|
|
200
|
+
- name: Restore RSpec status log
|
|
201
|
+
if: "${{!env.ACT}}"
|
|
202
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
203
|
+
with:
|
|
204
|
+
path: .rspec_status
|
|
205
|
+
key: rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
206
|
+
restore-keys: |
|
|
207
|
+
rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
208
|
+
rspec-status-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
209
|
+
|
|
210
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
211
|
+
if: ${{ !env.ACT }}
|
|
212
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
name: JRuby 10.0
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
K_SOUP_COV_DO: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- 'main'
|
|
13
|
+
- '*-stable'
|
|
14
|
+
tags:
|
|
15
|
+
- '!*' # Do not execute on tags
|
|
16
|
+
pull_request:
|
|
17
|
+
branches:
|
|
18
|
+
- '*'
|
|
19
|
+
# Allow manually triggering the workflow.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
23
|
+
concurrency:
|
|
24
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
25
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
26
|
+
cancel-in-progress: true
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
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'))"
|
|
31
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
# jruby-10.0 (targets Ruby 3.4 compatibility)
|
|
40
|
+
- ruby: "jruby-10.0"
|
|
41
|
+
appraisal: "ruby-3-4"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: default
|
|
44
|
+
bundler: default
|
|
45
|
+
experimental: true
|
|
46
|
+
|
|
47
|
+
steps:
|
|
48
|
+
- name: Checkout
|
|
49
|
+
if: ${{ !env.ACT }}
|
|
50
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
51
|
+
with:
|
|
52
|
+
persist-credentials: false
|
|
53
|
+
|
|
54
|
+
- name: Setup Ruby & RubyGems
|
|
55
|
+
if: ${{ !env.ACT }}
|
|
56
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
57
|
+
with:
|
|
58
|
+
ruby-version: ${{ matrix.ruby }}
|
|
59
|
+
rubygems: ${{ matrix.rubygems }}
|
|
60
|
+
bundler: ${{ matrix.bundler }}
|
|
61
|
+
bundler-cache: true
|
|
62
|
+
manual-compatibility-bundle: true
|
|
63
|
+
gem-install-retries: 7
|
|
64
|
+
|
|
65
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
66
|
+
id: bundleAppraisalAttempt1
|
|
67
|
+
if: ${{ !env.ACT }}
|
|
68
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
69
|
+
# Continue to the next step on failure
|
|
70
|
+
continue-on-error: true
|
|
71
|
+
|
|
72
|
+
# Effectively an automatic retry of the previous step.
|
|
73
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
74
|
+
id: bundleAppraisalAttempt2
|
|
75
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
76
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
77
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
78
|
+
|
|
79
|
+
- name: Restore RSpec status log
|
|
80
|
+
if: "${{!env.ACT}}"
|
|
81
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
82
|
+
with:
|
|
83
|
+
path: .rspec_status
|
|
84
|
+
key: rspec-status-jruby-10.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
85
|
+
restore-keys: |
|
|
86
|
+
rspec-status-jruby-10.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
87
|
+
rspec-status-jruby-10.0-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
88
|
+
|
|
89
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
90
|
+
if: ${{ !env.ACT }}
|
|
91
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: JRuby 9.1
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
K_SOUP_COV_DO: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- 'main'
|
|
13
|
+
- '*-stable'
|
|
14
|
+
tags:
|
|
15
|
+
- '!*' # Do not execute on tags
|
|
16
|
+
pull_request:
|
|
17
|
+
branches:
|
|
18
|
+
- '*'
|
|
19
|
+
# Allow manually triggering the workflow.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
23
|
+
concurrency:
|
|
24
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
25
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
26
|
+
cancel-in-progress: true
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
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'))"
|
|
31
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
|
+
runs-on: ubuntu-22.04
|
|
33
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
# jruby-9.1 (targets Ruby 2.3 compatibility)
|
|
40
|
+
- ruby: "jruby-9.1"
|
|
41
|
+
appraisal: "ruby-2-3"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: 3.3.27
|
|
44
|
+
bundler: 2.3.27
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- name: Checkout
|
|
48
|
+
if: ${{ !env.ACT }}
|
|
49
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
|
|
53
|
+
- name: Setup Ruby & RubyGems
|
|
54
|
+
if: ${{ !env.ACT }}
|
|
55
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
56
|
+
with:
|
|
57
|
+
ruby-version: ${{ matrix.ruby }}
|
|
58
|
+
rubygems: ${{ matrix.rubygems }}
|
|
59
|
+
bundler: ${{ matrix.bundler }}
|
|
60
|
+
bundler-cache: true
|
|
61
|
+
manual-compatibility-bundle: true
|
|
62
|
+
gem-install-retries: 7
|
|
63
|
+
|
|
64
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
|
+
id: bundleAppraisalAttempt1
|
|
66
|
+
if: ${{ !env.ACT }}
|
|
67
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
|
+
# Continue to the next step on failure
|
|
69
|
+
continue-on-error: true
|
|
70
|
+
|
|
71
|
+
# Effectively an automatic retry of the previous step.
|
|
72
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
73
|
+
id: bundleAppraisalAttempt2
|
|
74
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
75
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
76
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
77
|
+
|
|
78
|
+
- name: Restore RSpec status log
|
|
79
|
+
if: "${{!env.ACT}}"
|
|
80
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
81
|
+
with:
|
|
82
|
+
path: .rspec_status
|
|
83
|
+
key: rspec-status-jruby-9.1-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
84
|
+
restore-keys: |
|
|
85
|
+
rspec-status-jruby-9.1-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
86
|
+
rspec-status-jruby-9.1-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
87
|
+
|
|
88
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
89
|
+
if: ${{ !env.ACT }}
|
|
90
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: JRuby 9.2
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
K_SOUP_COV_DO: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- 'main'
|
|
13
|
+
- '*-stable'
|
|
14
|
+
tags:
|
|
15
|
+
- '!*' # Do not execute on tags
|
|
16
|
+
pull_request:
|
|
17
|
+
branches:
|
|
18
|
+
- '*'
|
|
19
|
+
# Allow manually triggering the workflow.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
23
|
+
concurrency:
|
|
24
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
25
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
26
|
+
cancel-in-progress: true
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
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'))"
|
|
31
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
|
+
runs-on: ubuntu-22.04
|
|
33
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
# jruby-9.2 (targets Ruby 2.5 compatibility)
|
|
40
|
+
- ruby: "jruby-9.2"
|
|
41
|
+
appraisal: "ruby-2-5"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: 3.3.27
|
|
44
|
+
bundler: 2.3.27
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- name: Checkout
|
|
48
|
+
if: ${{ !env.ACT }}
|
|
49
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
|
|
53
|
+
- name: Setup Ruby & RubyGems
|
|
54
|
+
if: ${{ !env.ACT }}
|
|
55
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
56
|
+
with:
|
|
57
|
+
ruby-version: ${{ matrix.ruby }}
|
|
58
|
+
rubygems: ${{ matrix.rubygems }}
|
|
59
|
+
bundler: ${{ matrix.bundler }}
|
|
60
|
+
bundler-cache: false
|
|
61
|
+
|
|
62
|
+
- name: Bundle install for JRuby 9.2
|
|
63
|
+
if: ${{ !env.ACT }}
|
|
64
|
+
run: |
|
|
65
|
+
bundle config set --local path "${RUNNER_TEMP}/bundle"
|
|
66
|
+
bundle config set --local mirror.https://gem.coop https://rubygems.org
|
|
67
|
+
bundle install --jobs 1
|
|
68
|
+
|
|
69
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
70
|
+
id: bundleAppraisalAttempt1
|
|
71
|
+
if: ${{ !env.ACT }}
|
|
72
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
73
|
+
# Continue to the next step on failure
|
|
74
|
+
continue-on-error: true
|
|
75
|
+
|
|
76
|
+
# Effectively an automatic retry of the previous step.
|
|
77
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
78
|
+
id: bundleAppraisalAttempt2
|
|
79
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
80
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
81
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
82
|
+
|
|
83
|
+
- name: Restore RSpec status log
|
|
84
|
+
if: "${{!env.ACT}}"
|
|
85
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
86
|
+
with:
|
|
87
|
+
path: .rspec_status
|
|
88
|
+
key: rspec-status-jruby-9.2-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
89
|
+
restore-keys: |
|
|
90
|
+
rspec-status-jruby-9.2-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
91
|
+
rspec-status-jruby-9.2-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
92
|
+
|
|
93
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
94
|
+
if: ${{ !env.ACT }}
|
|
95
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: JRuby 9.3
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
K_SOUP_COV_DO: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- 'main'
|
|
13
|
+
- '*-stable'
|
|
14
|
+
tags:
|
|
15
|
+
- '!*' # Do not execute on tags
|
|
16
|
+
pull_request:
|
|
17
|
+
branches:
|
|
18
|
+
- '*'
|
|
19
|
+
# Allow manually triggering the workflow.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
23
|
+
concurrency:
|
|
24
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
25
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
26
|
+
cancel-in-progress: true
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
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'))"
|
|
31
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
|
+
runs-on: ubuntu-22.04
|
|
33
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
# jruby-9.3 (targets Ruby 2.6 compatibility)
|
|
40
|
+
- ruby: "jruby-9.3"
|
|
41
|
+
appraisal: "ruby-2-6"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: "3.4.22"
|
|
44
|
+
bundler: "2.4.22"
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- name: Checkout
|
|
48
|
+
if: ${{ !env.ACT }}
|
|
49
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
|
|
53
|
+
- name: Setup Ruby & RubyGems
|
|
54
|
+
if: ${{ !env.ACT }}
|
|
55
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
56
|
+
with:
|
|
57
|
+
ruby-version: ${{ matrix.ruby }}
|
|
58
|
+
rubygems: ${{ matrix.rubygems }}
|
|
59
|
+
bundler: ${{ matrix.bundler }}
|
|
60
|
+
bundler-cache: false
|
|
61
|
+
|
|
62
|
+
- name: Bundle install for JRuby 9.3
|
|
63
|
+
if: ${{ !env.ACT }}
|
|
64
|
+
run: |
|
|
65
|
+
bundle config set --local path "${RUNNER_TEMP}/bundle"
|
|
66
|
+
bundle config set --local mirror.https://gem.coop https://rubygems.org
|
|
67
|
+
bundle install --jobs 1
|
|
68
|
+
|
|
69
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
70
|
+
id: bundleAppraisalAttempt1
|
|
71
|
+
if: ${{ !env.ACT }}
|
|
72
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
73
|
+
# Continue to the next step on failure
|
|
74
|
+
continue-on-error: true
|
|
75
|
+
|
|
76
|
+
# Effectively an automatic retry of the previous step.
|
|
77
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
78
|
+
id: bundleAppraisalAttempt2
|
|
79
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
80
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
81
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
82
|
+
|
|
83
|
+
- name: Restore RSpec status log
|
|
84
|
+
if: "${{!env.ACT}}"
|
|
85
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
86
|
+
with:
|
|
87
|
+
path: .rspec_status
|
|
88
|
+
key: rspec-status-jruby-9.3-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
89
|
+
restore-keys: |
|
|
90
|
+
rspec-status-jruby-9.3-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
91
|
+
rspec-status-jruby-9.3-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
92
|
+
|
|
93
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
94
|
+
if: ${{ !env.ACT }}
|
|
95
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: JRuby 9.4
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
K_SOUP_COV_DO: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- 'main'
|
|
13
|
+
- '*-stable'
|
|
14
|
+
tags:
|
|
15
|
+
- '!*' # Do not execute on tags
|
|
16
|
+
pull_request:
|
|
17
|
+
branches:
|
|
18
|
+
- '*'
|
|
19
|
+
# Allow manually triggering the workflow.
|
|
20
|
+
workflow_dispatch:
|
|
21
|
+
|
|
22
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
23
|
+
concurrency:
|
|
24
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
25
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
26
|
+
cancel-in-progress: true
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
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'))"
|
|
31
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
|
+
runs-on: ubuntu-22.04
|
|
33
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
# jruby-9.4 (targets Ruby 3.1 compatibility)
|
|
40
|
+
- ruby: "jruby-9.4"
|
|
41
|
+
appraisal: "ruby-3-1"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: "3.6.9"
|
|
44
|
+
bundler: "2.6.9"
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- name: Checkout
|
|
48
|
+
if: ${{ !env.ACT }}
|
|
49
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
|
|
53
|
+
- name: Setup Ruby & RubyGems
|
|
54
|
+
if: ${{ !env.ACT }}
|
|
55
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
56
|
+
with:
|
|
57
|
+
ruby-version: ${{ matrix.ruby }}
|
|
58
|
+
rubygems: ${{ matrix.rubygems }}
|
|
59
|
+
bundler: ${{ matrix.bundler }}
|
|
60
|
+
bundler-cache: false
|
|
61
|
+
|
|
62
|
+
- name: Bundle install for JRuby 9.4
|
|
63
|
+
if: ${{ !env.ACT }}
|
|
64
|
+
run: |
|
|
65
|
+
bundle config set --local path "${RUNNER_TEMP}/bundle"
|
|
66
|
+
bundle config set --local mirror.https://gem.coop https://rubygems.org
|
|
67
|
+
bundle install --jobs 1
|
|
68
|
+
|
|
69
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
70
|
+
id: bundleAppraisalAttempt1
|
|
71
|
+
if: ${{ !env.ACT }}
|
|
72
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
73
|
+
# Continue to the next step on failure
|
|
74
|
+
continue-on-error: true
|
|
75
|
+
|
|
76
|
+
# Effectively an automatic retry of the previous step.
|
|
77
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
78
|
+
id: bundleAppraisalAttempt2
|
|
79
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
80
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
81
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
82
|
+
|
|
83
|
+
- name: Restore RSpec status log
|
|
84
|
+
if: "${{!env.ACT}}"
|
|
85
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
86
|
+
with:
|
|
87
|
+
path: .rspec_status
|
|
88
|
+
key: rspec-status-jruby-9.4-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
89
|
+
restore-keys: |
|
|
90
|
+
rspec-status-jruby-9.4-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
91
|
+
rspec-status-jruby-9.4-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
92
|
+
|
|
93
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
94
|
+
if: ${{ !env.ACT }}
|
|
95
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|