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,86 @@
|
|
|
1
|
+
# Targets the evergreen latest release of ruby
|
|
2
|
+
name: Current MRI
|
|
3
|
+
|
|
4
|
+
permissions:
|
|
5
|
+
contents: read
|
|
6
|
+
|
|
7
|
+
env:
|
|
8
|
+
K_SOUP_COV_DO: false
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
branches:
|
|
13
|
+
- 'main'
|
|
14
|
+
- '*-stable'
|
|
15
|
+
tags:
|
|
16
|
+
- '!*' # Do not execute on tags
|
|
17
|
+
pull_request:
|
|
18
|
+
branches:
|
|
19
|
+
- '*'
|
|
20
|
+
# Allow manually triggering the workflow.
|
|
21
|
+
workflow_dispatch:
|
|
22
|
+
|
|
23
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
24
|
+
concurrency:
|
|
25
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
26
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
27
|
+
cancel-in-progress: true
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
test:
|
|
31
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
32
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
33
|
+
runs-on: ubuntu-latest
|
|
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
|
+
# Ruby 4.0
|
|
40
|
+
- ruby: "ruby"
|
|
41
|
+
appraisal: "current"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: latest
|
|
44
|
+
bundler: latest
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- name: Checkout
|
|
48
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
49
|
+
with:
|
|
50
|
+
persist-credentials: false
|
|
51
|
+
|
|
52
|
+
- name: Setup Ruby & RubyGems
|
|
53
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
54
|
+
with:
|
|
55
|
+
ruby-version: ${{ matrix.ruby }}
|
|
56
|
+
rubygems: ${{ matrix.rubygems }}
|
|
57
|
+
bundler: ${{ matrix.bundler }}
|
|
58
|
+
bundler-cache: true
|
|
59
|
+
manual-compatibility-bundle: true
|
|
60
|
+
gem-install-retries: 7
|
|
61
|
+
|
|
62
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
63
|
+
id: bundleAppraisalAttempt1
|
|
64
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
65
|
+
# Continue to the next step on failure
|
|
66
|
+
continue-on-error: true
|
|
67
|
+
|
|
68
|
+
# Effectively an automatic retry of the previous step.
|
|
69
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
70
|
+
id: bundleAppraisalAttempt2
|
|
71
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
72
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
73
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
74
|
+
|
|
75
|
+
- name: Restore RSpec status log
|
|
76
|
+
if: "${{!env.ACT}}"
|
|
77
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
78
|
+
with:
|
|
79
|
+
path: .rspec_status
|
|
80
|
+
key: rspec-status-current-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
81
|
+
restore-keys: |
|
|
82
|
+
rspec-status-current-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
83
|
+
rspec-status-current-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
84
|
+
|
|
85
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
86
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# Targets enabled evergreen Ruby engines and tests against the HEAD of runtime dependencies
|
|
2
|
+
name: Runtime Deps @ HEAD
|
|
3
|
+
|
|
4
|
+
permissions:
|
|
5
|
+
contents: read
|
|
6
|
+
|
|
7
|
+
env:
|
|
8
|
+
K_SOUP_COV_DO: false
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
branches:
|
|
13
|
+
- 'main'
|
|
14
|
+
- '*-stable'
|
|
15
|
+
tags:
|
|
16
|
+
- '!*' # Do not execute on tags
|
|
17
|
+
pull_request:
|
|
18
|
+
branches:
|
|
19
|
+
- '*'
|
|
20
|
+
# Allow manually triggering the workflow.
|
|
21
|
+
workflow_dispatch:
|
|
22
|
+
|
|
23
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
24
|
+
concurrency:
|
|
25
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
26
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
27
|
+
cancel-in-progress: true
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
ruby:
|
|
31
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
32
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
35
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
36
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}
|
|
37
|
+
strategy:
|
|
38
|
+
fail-fast: true
|
|
39
|
+
matrix:
|
|
40
|
+
include:
|
|
41
|
+
# Ruby 3.4
|
|
42
|
+
- ruby: "ruby"
|
|
43
|
+
appraisal: "dep-heads"
|
|
44
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
45
|
+
# Run directly from the generated appraisal Gemfile so setup-ruby
|
|
46
|
+
# does not bootstrap Appraisal.root.gemfile against dependency
|
|
47
|
+
# sources before this dep-heads appraisal is selected.
|
|
48
|
+
# This makes gemfiles/dep_heads.gemfile required checked-in output
|
|
49
|
+
# for repositories using this generated workflow.
|
|
50
|
+
bundle_gemfile: "gemfiles/dep_heads.gemfile"
|
|
51
|
+
direct_bundle: true
|
|
52
|
+
rubygems: latest
|
|
53
|
+
bundler: latest
|
|
54
|
+
|
|
55
|
+
steps:
|
|
56
|
+
- name: Checkout
|
|
57
|
+
if: ${{ !env.ACT }}
|
|
58
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
59
|
+
with:
|
|
60
|
+
persist-credentials: false
|
|
61
|
+
|
|
62
|
+
- name: Setup Ruby & RubyGems
|
|
63
|
+
if: ${{ !env.ACT }}
|
|
64
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
65
|
+
with:
|
|
66
|
+
ruby-version: ${{ matrix.ruby }}
|
|
67
|
+
rubygems: ${{ matrix.rubygems }}
|
|
68
|
+
bundler: ${{ matrix.bundler }}
|
|
69
|
+
bundler-cache: ${{ matrix.ruby != 'jruby' }}
|
|
70
|
+
manual-compatibility-bundle: true
|
|
71
|
+
gem-install-retries: 7
|
|
72
|
+
# Direct appraisal Gemfiles can contain Bundler GIT/PATH lockfile
|
|
73
|
+
# sections that rv clean-install does not currently parse.
|
|
74
|
+
use-setup-ruby: "3.2 3.3 3.4 4.0"
|
|
75
|
+
|
|
76
|
+
- name: Prepare engine-specific lockfile
|
|
77
|
+
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
|
|
78
|
+
run: |
|
|
79
|
+
BUNDLE_LOCKFILE="${RUNNER_TEMP}/kettle-jem-lockfiles/${{ matrix.appraisal }}-${{ matrix.ruby }}.lock"
|
|
80
|
+
echo "BUNDLE_LOCKFILE=${BUNDLE_LOCKFILE}" >> "$GITHUB_ENV"
|
|
81
|
+
mkdir -p "$(dirname "$BUNDLE_LOCKFILE")"
|
|
82
|
+
if [ "${{ matrix.ruby }}" = "jruby" ]; then
|
|
83
|
+
bundle lock --lockfile="$BUNDLE_LOCKFILE" --add-platform=universal-java --update
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
- name: Bundle install
|
|
87
|
+
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
|
|
88
|
+
run: bundle install --jobs 4
|
|
89
|
+
|
|
90
|
+
- name: Restore RSpec status log
|
|
91
|
+
if: "${{!env.ACT}}"
|
|
92
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
93
|
+
with:
|
|
94
|
+
path: .rspec_status
|
|
95
|
+
key: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
96
|
+
restore-keys: |
|
|
97
|
+
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
98
|
+
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
99
|
+
|
|
100
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
101
|
+
if: ${{ !env.ACT }}
|
|
102
|
+
run: bundle exec ${{ matrix.exec_cmd }}
|
|
103
|
+
|
|
104
|
+
truffleruby:
|
|
105
|
+
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'))"
|
|
106
|
+
name: Specs truffleruby@dep-heads
|
|
107
|
+
runs-on: ubuntu-latest
|
|
108
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
109
|
+
env:
|
|
110
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}
|
|
111
|
+
strategy:
|
|
112
|
+
fail-fast: true
|
|
113
|
+
matrix:
|
|
114
|
+
include:
|
|
115
|
+
- ruby: "truffleruby"
|
|
116
|
+
appraisal: "dep-heads"
|
|
117
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
118
|
+
# Run directly from the generated appraisal Gemfile so setup-ruby
|
|
119
|
+
# does not bootstrap Appraisal.root.gemfile against dependency
|
|
120
|
+
# sources before this dep-heads appraisal is selected.
|
|
121
|
+
# This makes gemfiles/dep_heads.gemfile required checked-in output
|
|
122
|
+
# for repositories using this generated workflow.
|
|
123
|
+
bundle_gemfile: "gemfiles/dep_heads.gemfile"
|
|
124
|
+
direct_bundle: true
|
|
125
|
+
rubygems: latest
|
|
126
|
+
bundler: latest
|
|
127
|
+
|
|
128
|
+
steps:
|
|
129
|
+
- name: Checkout
|
|
130
|
+
if: ${{ !env.ACT }}
|
|
131
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
132
|
+
with:
|
|
133
|
+
persist-credentials: false
|
|
134
|
+
|
|
135
|
+
- name: Setup Ruby & RubyGems
|
|
136
|
+
if: ${{ !env.ACT }}
|
|
137
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
138
|
+
with:
|
|
139
|
+
ruby-version: ${{ matrix.ruby }}
|
|
140
|
+
rubygems: ${{ matrix.rubygems }}
|
|
141
|
+
bundler: ${{ matrix.bundler }}
|
|
142
|
+
bundler-cache: ${{ matrix.ruby != 'jruby' }}
|
|
143
|
+
manual-compatibility-bundle: true
|
|
144
|
+
gem-install-retries: 7
|
|
145
|
+
# Direct appraisal Gemfiles can contain Bundler GIT/PATH lockfile
|
|
146
|
+
# sections that rv clean-install does not currently parse.
|
|
147
|
+
use-setup-ruby: "3.2 3.3 3.4 4.0"
|
|
148
|
+
|
|
149
|
+
- name: Prepare engine-specific lockfile
|
|
150
|
+
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
|
|
151
|
+
run: |
|
|
152
|
+
BUNDLE_LOCKFILE="${RUNNER_TEMP}/kettle-jem-lockfiles/${{ matrix.appraisal }}-${{ matrix.ruby }}.lock"
|
|
153
|
+
echo "BUNDLE_LOCKFILE=${BUNDLE_LOCKFILE}" >> "$GITHUB_ENV"
|
|
154
|
+
mkdir -p "$(dirname "$BUNDLE_LOCKFILE")"
|
|
155
|
+
if [ "${{ matrix.ruby }}" = "jruby" ]; then
|
|
156
|
+
bundle lock --lockfile="$BUNDLE_LOCKFILE" --add-platform=universal-java --update
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
- name: Bundle install
|
|
160
|
+
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
|
|
161
|
+
run: bundle install --jobs 4
|
|
162
|
+
|
|
163
|
+
- name: Restore RSpec status log
|
|
164
|
+
if: "${{!env.ACT}}"
|
|
165
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
166
|
+
with:
|
|
167
|
+
path: .rspec_status
|
|
168
|
+
key: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
169
|
+
restore-keys: |
|
|
170
|
+
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
171
|
+
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
172
|
+
|
|
173
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
174
|
+
if: ${{ !env.ACT }}
|
|
175
|
+
run: bundle exec ${{ matrix.exec_cmd }}
|
|
176
|
+
|
|
177
|
+
jruby:
|
|
178
|
+
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'))"
|
|
179
|
+
name: Specs jruby@dep-heads
|
|
180
|
+
runs-on: ubuntu-latest
|
|
181
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
182
|
+
env:
|
|
183
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle_gemfile || 'Appraisal.root.gemfile' }}
|
|
184
|
+
strategy:
|
|
185
|
+
fail-fast: true
|
|
186
|
+
matrix:
|
|
187
|
+
include:
|
|
188
|
+
- ruby: "jruby"
|
|
189
|
+
appraisal: "dep-heads"
|
|
190
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
191
|
+
# Run directly from the generated appraisal Gemfile so setup-ruby
|
|
192
|
+
# does not bootstrap Appraisal.root.gemfile against dependency
|
|
193
|
+
# sources before this dep-heads appraisal is selected.
|
|
194
|
+
# This makes gemfiles/dep_heads.gemfile required checked-in output
|
|
195
|
+
# for repositories using this generated workflow.
|
|
196
|
+
bundle_gemfile: "gemfiles/dep_heads.gemfile"
|
|
197
|
+
direct_bundle: true
|
|
198
|
+
rubygems: default
|
|
199
|
+
bundler: default
|
|
200
|
+
experimental: true
|
|
201
|
+
|
|
202
|
+
steps:
|
|
203
|
+
- name: Checkout
|
|
204
|
+
if: ${{ !env.ACT }}
|
|
205
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
206
|
+
with:
|
|
207
|
+
persist-credentials: false
|
|
208
|
+
|
|
209
|
+
- name: Setup Ruby & RubyGems
|
|
210
|
+
if: ${{ !env.ACT }}
|
|
211
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
212
|
+
with:
|
|
213
|
+
ruby-version: ${{ matrix.ruby }}
|
|
214
|
+
rubygems: ${{ matrix.rubygems }}
|
|
215
|
+
bundler: ${{ matrix.bundler }}
|
|
216
|
+
bundler-cache: ${{ matrix.ruby != 'jruby' }}
|
|
217
|
+
manual-compatibility-bundle: true
|
|
218
|
+
gem-install-retries: 7
|
|
219
|
+
# Direct appraisal Gemfiles can contain Bundler GIT/PATH lockfile
|
|
220
|
+
# sections that rv clean-install does not currently parse.
|
|
221
|
+
use-setup-ruby: "3.2 3.3 3.4 4.0"
|
|
222
|
+
|
|
223
|
+
- name: Prepare engine-specific lockfile
|
|
224
|
+
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
|
|
225
|
+
run: |
|
|
226
|
+
BUNDLE_LOCKFILE="${RUNNER_TEMP}/kettle-jem-lockfiles/${{ matrix.appraisal }}-${{ matrix.ruby }}.lock"
|
|
227
|
+
echo "BUNDLE_LOCKFILE=${BUNDLE_LOCKFILE}" >> "$GITHUB_ENV"
|
|
228
|
+
mkdir -p "$(dirname "$BUNDLE_LOCKFILE")"
|
|
229
|
+
if [ "${{ matrix.ruby }}" = "jruby" ]; then
|
|
230
|
+
bundle lock --lockfile="$BUNDLE_LOCKFILE" --add-platform=universal-java --update
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
- name: Bundle install
|
|
234
|
+
if: ${{ !env.ACT && matrix.ruby == 'jruby' }}
|
|
235
|
+
run: bundle install --jobs 4
|
|
236
|
+
|
|
237
|
+
- name: Restore RSpec status log
|
|
238
|
+
if: "${{!env.ACT}}"
|
|
239
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
240
|
+
with:
|
|
241
|
+
path: .rspec_status
|
|
242
|
+
key: rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
243
|
+
restore-keys: |
|
|
244
|
+
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
245
|
+
rspec-status-dep-heads-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
246
|
+
|
|
247
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
248
|
+
if: ${{ !env.ACT }}
|
|
249
|
+
run: bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Dependency Review Action
|
|
2
|
+
#
|
|
3
|
+
# This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
|
|
4
|
+
#
|
|
5
|
+
# Source repository: https://github.com/actions/dependency-review-action
|
|
6
|
+
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
|
7
|
+
name: 'Dependency Review'
|
|
8
|
+
on: [pull_request]
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
dependency-review:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: 'Checkout Repository'
|
|
18
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
19
|
+
with:
|
|
20
|
+
persist-credentials: false
|
|
21
|
+
- name: 'Dependency Review'
|
|
22
|
+
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Discord Notify
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
check_run:
|
|
5
|
+
types: [completed]
|
|
6
|
+
discussion:
|
|
7
|
+
types: [ created ]
|
|
8
|
+
discussion_comment:
|
|
9
|
+
types: [ created ]
|
|
10
|
+
fork:
|
|
11
|
+
gollum:
|
|
12
|
+
issues:
|
|
13
|
+
types: [ opened ]
|
|
14
|
+
issue_comment:
|
|
15
|
+
types: [ created ]
|
|
16
|
+
pull_request:
|
|
17
|
+
types: [ opened, reopened, closed ]
|
|
18
|
+
release:
|
|
19
|
+
types: [ published ]
|
|
20
|
+
watch:
|
|
21
|
+
types: [ started ]
|
|
22
|
+
|
|
23
|
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
24
|
+
jobs:
|
|
25
|
+
# This workflow contains a single job called "build"
|
|
26
|
+
notify:
|
|
27
|
+
if: false
|
|
28
|
+
# The type of runner that the job will run on
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
|
|
31
|
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
32
|
+
steps:
|
|
33
|
+
- name: Actions Status Discord
|
|
34
|
+
uses: sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0
|
|
35
|
+
if: always()
|
|
36
|
+
with:
|
|
37
|
+
webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
|
38
|
+
status: ${{ job.status }}
|
|
39
|
+
username: GitHub Actions
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Framework matrix CI workflow template.
|
|
2
|
+
# Generated by kettle-jem when workflows.preset is "framework".
|
|
3
|
+
# The matrix entries are populated from .kettle-jem.yml framework_matrix config.
|
|
4
|
+
name: Framework CI
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
K_SOUP_COV_DO: false
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
branches:
|
|
15
|
+
- 'main'
|
|
16
|
+
- '*-stable'
|
|
17
|
+
tags:
|
|
18
|
+
- '!*' # Do not execute on tags
|
|
19
|
+
pull_request:
|
|
20
|
+
branches:
|
|
21
|
+
- '*'
|
|
22
|
+
# Allow manually triggering the workflow.
|
|
23
|
+
workflow_dispatch:
|
|
24
|
+
|
|
25
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
26
|
+
concurrency:
|
|
27
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
28
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
29
|
+
cancel-in-progress: true
|
|
30
|
+
|
|
31
|
+
jobs:
|
|
32
|
+
test:
|
|
33
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
34
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.framework_version }}
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
37
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
38
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
39
|
+
strategy:
|
|
40
|
+
fail-fast: false
|
|
41
|
+
matrix:
|
|
42
|
+
ruby:
|
|
43
|
+
- "3.1"
|
|
44
|
+
- "3.2"
|
|
45
|
+
- "3.3"
|
|
46
|
+
- "3.4"
|
|
47
|
+
framework_version: []
|
|
48
|
+
gemfile: []
|
|
49
|
+
rubygems:
|
|
50
|
+
- default
|
|
51
|
+
bundler:
|
|
52
|
+
- default
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- name: Checkout
|
|
56
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
57
|
+
with:
|
|
58
|
+
persist-credentials: false
|
|
59
|
+
|
|
60
|
+
- name: Setup Ruby & RubyGems
|
|
61
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
62
|
+
with:
|
|
63
|
+
ruby-version: "${{ matrix.ruby }}"
|
|
64
|
+
rubygems: "${{ matrix.rubygems }}"
|
|
65
|
+
bundler: "${{ matrix.bundler }}"
|
|
66
|
+
bundler-cache: true
|
|
67
|
+
manual-compatibility-bundle: true
|
|
68
|
+
gem-install-retries: 7
|
|
69
|
+
|
|
70
|
+
- name: Restore RSpec status log
|
|
71
|
+
if: "${{!env.ACT}}"
|
|
72
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
73
|
+
with:
|
|
74
|
+
path: .rspec_status
|
|
75
|
+
key: rspec-status-framework-ci-${{matrix.ruby}}-${{matrix.framework_version}}-${{matrix.gemfile}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
76
|
+
restore-keys: |
|
|
77
|
+
rspec-status-framework-ci-${{matrix.ruby}}-${{matrix.framework_version}}-${{matrix.gemfile}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
78
|
+
rspec-status-framework-ci-${{matrix.ruby}}-${{matrix.framework_version}}-${{matrix.gemfile}}-
|
|
79
|
+
|
|
80
|
+
- name: Tests for ${{ matrix.ruby }}@${{ matrix.framework_version }}
|
|
81
|
+
run: bundle exec {KJ|CI:EXEC_CMD}
|