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,92 @@
|
|
|
1
|
+
name: TruffleRuby 22.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, 'truffleruby/') || 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
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-22.3 (targets Ruby 3.0 compatibility)
|
|
41
|
+
- ruby: "truffleruby-22.3"
|
|
42
|
+
appraisal: "ruby-3-0"
|
|
43
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
44
|
+
rubygems: default
|
|
45
|
+
bundler: default
|
|
46
|
+
experimental: true
|
|
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: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
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-truffleruby-22.3-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
86
|
+
restore-keys: |
|
|
87
|
+
rspec-status-truffleruby-22.3-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
88
|
+
rspec-status-truffleruby-22.3-${{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 }}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
name: TruffleRuby 23.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, 'truffleruby/') || 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
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-23.0 (targets Ruby 3.0 compatibility)
|
|
41
|
+
- ruby: "truffleruby-23.0"
|
|
42
|
+
appraisal: "ruby-3-0"
|
|
43
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
44
|
+
rubygems: default
|
|
45
|
+
bundler: default
|
|
46
|
+
experimental: true
|
|
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: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
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-truffleruby-23.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
86
|
+
restore-keys: |
|
|
87
|
+
rspec-status-truffleruby-23.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
88
|
+
rspec-status-truffleruby-23.0-${{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 }}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: TruffleRuby 23.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, 'truffleruby/') || 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 }}/gemfiles/ruby_3_2.gemfile
|
|
36
|
+
strategy:
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-23.1 (targets Ruby 3.2 compatibility)
|
|
41
|
+
- ruby: "truffleruby-23.1"
|
|
42
|
+
appraisal: "ruby-3-2"
|
|
43
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
44
|
+
rubygems: default
|
|
45
|
+
bundler: default
|
|
46
|
+
experimental: true
|
|
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: Restore RSpec status log
|
|
67
|
+
if: "${{!env.ACT}}"
|
|
68
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
69
|
+
with:
|
|
70
|
+
path: .rspec_status
|
|
71
|
+
key: rspec-status-truffleruby-23.1-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
72
|
+
restore-keys: |
|
|
73
|
+
rspec-status-truffleruby-23.1-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
74
|
+
rspec-status-truffleruby-23.1-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
75
|
+
|
|
76
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
77
|
+
if: ${{ !env.ACT }}
|
|
78
|
+
run: bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
name: TruffleRuby 24.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, 'truffleruby/') || 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
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-24.2 (targets Ruby 3.3 compatibility)
|
|
41
|
+
- ruby: "truffleruby-24.2"
|
|
42
|
+
appraisal: "ruby-3-3"
|
|
43
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
44
|
+
rubygems: default
|
|
45
|
+
bundler: default
|
|
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-truffleruby-24.2-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
85
|
+
restore-keys: |
|
|
86
|
+
rspec-status-truffleruby-24.2-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
87
|
+
rspec-status-truffleruby-24.2-${{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,96 @@
|
|
|
1
|
+
name: TruffleRuby 25.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, 'truffleruby/') || 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
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-25.0 (targets Ruby 3.3 compatibility)
|
|
41
|
+
- ruby: "truffleruby-25.0"
|
|
42
|
+
appraisal: "ruby-3-3"
|
|
43
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
44
|
+
rubygems: default
|
|
45
|
+
bundler: default
|
|
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: false
|
|
62
|
+
|
|
63
|
+
- name: Bundle install for TruffleRuby 25.0
|
|
64
|
+
if: ${{ !env.ACT }}
|
|
65
|
+
run: |
|
|
66
|
+
bundle config set --local path "${RUNNER_TEMP}/bundle"
|
|
67
|
+
bundle config set --local mirror.https://gem.coop https://rubygems.org
|
|
68
|
+
bundle install --jobs 1
|
|
69
|
+
|
|
70
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
71
|
+
id: bundleAppraisalAttempt1
|
|
72
|
+
if: ${{ !env.ACT }}
|
|
73
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
74
|
+
# Continue to the next step on failure
|
|
75
|
+
continue-on-error: true
|
|
76
|
+
|
|
77
|
+
# Effectively an automatic retry of the previous step.
|
|
78
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
79
|
+
id: bundleAppraisalAttempt2
|
|
80
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
81
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
82
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
83
|
+
|
|
84
|
+
- name: Restore RSpec status log
|
|
85
|
+
if: "${{!env.ACT}}"
|
|
86
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
87
|
+
with:
|
|
88
|
+
path: .rspec_status
|
|
89
|
+
key: rspec-status-truffleruby-25.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
90
|
+
restore-keys: |
|
|
91
|
+
rspec-status-truffleruby-25.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
92
|
+
rspec-status-truffleruby-25.0-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
93
|
+
|
|
94
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
95
|
+
if: ${{ !env.ACT }}
|
|
96
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
name: TruffleRuby 33.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, 'truffleruby/') || 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
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-33.0 (targets Ruby 3.3 compatibility)
|
|
41
|
+
- ruby: "truffleruby-33.0"
|
|
42
|
+
appraisal: "ruby-3-3"
|
|
43
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
44
|
+
rubygems: default
|
|
45
|
+
bundler: default
|
|
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-truffleruby-33.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-truffleruby-33.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
87
|
+
rspec-status-truffleruby-33.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,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Lock/Unlock Deps Pattern
|
|
3
|
+
#
|
|
4
|
+
# Two often conflicting goals resolved!
|
|
5
|
+
#
|
|
6
|
+
# - unlocked_deps.yml
|
|
7
|
+
# - All runtime & dev dependencies, but does not have a `gemfiles/*.gemfile.lock` committed
|
|
8
|
+
# - Uses an Appraisal2 "unlocked_deps" gemfile, and the current MRI Ruby release
|
|
9
|
+
# - Know when new dependency releases will break local dev with unlocked dependencies
|
|
10
|
+
# - Broken workflow indicates that new releases of dependencies may not work
|
|
11
|
+
#
|
|
12
|
+
# - locked_deps.yml
|
|
13
|
+
# - All runtime & dev dependencies, and has a `Gemfile.lock` committed
|
|
14
|
+
# - Uses the project's main Gemfile, and the current MRI Ruby release
|
|
15
|
+
# - Matches what contributors and maintainers use locally for development
|
|
16
|
+
# - Broken workflow indicates that a new contributor will have a bad time
|
|
17
|
+
#
|
|
18
|
+
name: Deps Unlocked
|
|
19
|
+
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
|
|
23
|
+
env:
|
|
24
|
+
K_SOUP_COV_DO: false
|
|
25
|
+
|
|
26
|
+
on:
|
|
27
|
+
push:
|
|
28
|
+
branches:
|
|
29
|
+
- 'main'
|
|
30
|
+
- '*-stable'
|
|
31
|
+
tags:
|
|
32
|
+
- '!*' # Do not execute on tags
|
|
33
|
+
pull_request:
|
|
34
|
+
branches:
|
|
35
|
+
- '*'
|
|
36
|
+
# Allow manually triggering the workflow.
|
|
37
|
+
workflow_dispatch:
|
|
38
|
+
|
|
39
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
40
|
+
concurrency:
|
|
41
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
42
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
43
|
+
cancel-in-progress: true
|
|
44
|
+
|
|
45
|
+
jobs:
|
|
46
|
+
test:
|
|
47
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
48
|
+
name: Default rake task w/ unlocked deps ${{ matrix.name_extra || '' }}
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
51
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
52
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
53
|
+
strategy:
|
|
54
|
+
matrix:
|
|
55
|
+
include:
|
|
56
|
+
# Ruby <whichever version is current, e.g., 3.4 as of 2025-07-12>
|
|
57
|
+
- ruby: "ruby"
|
|
58
|
+
appraisal: "unlocked_deps"
|
|
59
|
+
exec_cmd: "rake"
|
|
60
|
+
rubygems: latest
|
|
61
|
+
bundler: latest
|
|
62
|
+
|
|
63
|
+
steps:
|
|
64
|
+
- name: Checkout
|
|
65
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
66
|
+
with:
|
|
67
|
+
persist-credentials: false
|
|
68
|
+
|
|
69
|
+
- name: Setup Ruby & RubyGems
|
|
70
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
71
|
+
with:
|
|
72
|
+
ruby-version: ${{ matrix.ruby }}
|
|
73
|
+
rubygems: ${{ matrix.rubygems }}
|
|
74
|
+
bundler: ${{ matrix.bundler }}
|
|
75
|
+
bundler-cache: true
|
|
76
|
+
manual-compatibility-bundle: true
|
|
77
|
+
gem-install-retries: 7
|
|
78
|
+
|
|
79
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
80
|
+
id: bundleAppraisalAttempt1
|
|
81
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
82
|
+
# Continue to the next step on failure
|
|
83
|
+
continue-on-error: true
|
|
84
|
+
|
|
85
|
+
# Effectively an automatic retry of the previous step.
|
|
86
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
87
|
+
id: bundleAppraisalAttempt2
|
|
88
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
89
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
90
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
91
|
+
|
|
92
|
+
- name: Run ${{ matrix.exec_cmd }} on ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
93
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|