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,85 @@
|
|
|
1
|
+
name: Ruby 3.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]'))"
|
|
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
|
+
# Ruby 3.0
|
|
40
|
+
- ruby: "ruby-3.0"
|
|
41
|
+
appraisal: "ruby-3-0"
|
|
42
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
43
|
+
rubygems: '3.5.23'
|
|
44
|
+
bundler: '2.5.23'
|
|
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
|
+
if: ${{ !env.ACT }}
|
|
65
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
66
|
+
continue-on-error: true
|
|
67
|
+
|
|
68
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
69
|
+
id: bundleAppraisalAttempt2
|
|
70
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
71
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
72
|
+
|
|
73
|
+
- name: Restore RSpec status log
|
|
74
|
+
if: "${{!env.ACT}}"
|
|
75
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
76
|
+
with:
|
|
77
|
+
path: .rspec_status
|
|
78
|
+
key: rspec-status-ruby-3.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
79
|
+
restore-keys: |
|
|
80
|
+
rspec-status-ruby-3.0-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
81
|
+
rspec-status-ruby-3.0-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
82
|
+
|
|
83
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
84
|
+
if: ${{ !env.ACT }}
|
|
85
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: Ruby 3.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]'))"
|
|
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
|
+
# Ruby 3.1
|
|
40
|
+
- ruby: "ruby-3.1"
|
|
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
|
+
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-on-error: true
|
|
66
|
+
|
|
67
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
68
|
+
id: bundleAppraisalAttempt2
|
|
69
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
70
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
71
|
+
|
|
72
|
+
- name: Restore RSpec status log
|
|
73
|
+
if: "${{!env.ACT}}"
|
|
74
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
75
|
+
with:
|
|
76
|
+
path: .rspec_status
|
|
77
|
+
key: rspec-status-ruby-3.1-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
78
|
+
restore-keys: |
|
|
79
|
+
rspec-status-ruby-3.1-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
80
|
+
rspec-status-ruby-3.1-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
81
|
+
|
|
82
|
+
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
83
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: Ruby 3.2
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- 'main'
|
|
10
|
+
- '*-stable'
|
|
11
|
+
tags:
|
|
12
|
+
- '!*' # Do not execute on tags
|
|
13
|
+
pull_request:
|
|
14
|
+
branches:
|
|
15
|
+
- '*'
|
|
16
|
+
# Allow manually triggering the workflow.
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
20
|
+
concurrency:
|
|
21
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
22
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
23
|
+
cancel-in-progress: true
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
test:
|
|
27
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
33
|
+
strategy:
|
|
34
|
+
matrix:
|
|
35
|
+
include:
|
|
36
|
+
# Ruby 3.2
|
|
37
|
+
- ruby: "ruby-3.2"
|
|
38
|
+
appraisal: "ruby-3-2"
|
|
39
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
40
|
+
rubygems: latest
|
|
41
|
+
bundler: latest
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Checkout
|
|
45
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
46
|
+
with:
|
|
47
|
+
persist-credentials: false
|
|
48
|
+
|
|
49
|
+
- name: Setup Ruby & RubyGems
|
|
50
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
51
|
+
with:
|
|
52
|
+
ruby-version: ${{ matrix.ruby }}
|
|
53
|
+
rubygems: ${{ matrix.rubygems }}
|
|
54
|
+
bundler: ${{ matrix.bundler }}
|
|
55
|
+
bundler-cache: true
|
|
56
|
+
manual-compatibility-bundle: true
|
|
57
|
+
gem-install-retries: 7
|
|
58
|
+
|
|
59
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
60
|
+
id: bundleAppraisalAttempt1
|
|
61
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
62
|
+
continue-on-error: true
|
|
63
|
+
|
|
64
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
|
+
id: bundleAppraisalAttempt2
|
|
66
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
|
+
|
|
69
|
+
- name: Restore RSpec status log
|
|
70
|
+
if: "${{!env.ACT}}"
|
|
71
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
72
|
+
with:
|
|
73
|
+
path: .rspec_status
|
|
74
|
+
key: rspec-status-ruby-3.2-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
75
|
+
restore-keys: |
|
|
76
|
+
rspec-status-ruby-3.2-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
77
|
+
rspec-status-ruby-3.2-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
78
|
+
|
|
79
|
+
- name: Tests for ${{ matrix.ruby }} ${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
|
|
80
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: Ruby 3.3
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- 'main'
|
|
10
|
+
- '*-stable'
|
|
11
|
+
tags:
|
|
12
|
+
- '!*' # Do not execute on tags
|
|
13
|
+
pull_request:
|
|
14
|
+
branches:
|
|
15
|
+
- '*'
|
|
16
|
+
# Allow manually triggering the workflow.
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
20
|
+
concurrency:
|
|
21
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
22
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
23
|
+
cancel-in-progress: true
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
test:
|
|
27
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
33
|
+
strategy:
|
|
34
|
+
matrix:
|
|
35
|
+
include:
|
|
36
|
+
# Ruby 3.3
|
|
37
|
+
- ruby: "ruby-3.3"
|
|
38
|
+
appraisal: "ruby-3-3"
|
|
39
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
40
|
+
rubygems: latest
|
|
41
|
+
bundler: latest
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Checkout
|
|
45
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
46
|
+
with:
|
|
47
|
+
persist-credentials: false
|
|
48
|
+
|
|
49
|
+
- name: Setup Ruby & RubyGems
|
|
50
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
51
|
+
with:
|
|
52
|
+
ruby-version: ${{ matrix.ruby }}
|
|
53
|
+
rubygems: ${{ matrix.rubygems }}
|
|
54
|
+
bundler: ${{ matrix.bundler }}
|
|
55
|
+
bundler-cache: true
|
|
56
|
+
manual-compatibility-bundle: true
|
|
57
|
+
gem-install-retries: 7
|
|
58
|
+
|
|
59
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
60
|
+
id: bundleAppraisalAttempt1
|
|
61
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
62
|
+
continue-on-error: true
|
|
63
|
+
|
|
64
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
|
+
id: bundleAppraisalAttempt2
|
|
66
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
|
+
|
|
69
|
+
- name: Restore RSpec status log
|
|
70
|
+
if: "${{!env.ACT}}"
|
|
71
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
72
|
+
with:
|
|
73
|
+
path: .rspec_status
|
|
74
|
+
key: rspec-status-ruby-3.3-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
75
|
+
restore-keys: |
|
|
76
|
+
rspec-status-ruby-3.3-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
77
|
+
rspec-status-ruby-3.3-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
78
|
+
|
|
79
|
+
- name: Tests for ${{ matrix.ruby }} ${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
|
|
80
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: Ruby 3.4
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- 'main'
|
|
10
|
+
- '*-stable'
|
|
11
|
+
tags:
|
|
12
|
+
- '!*' # Do not execute on tags
|
|
13
|
+
pull_request:
|
|
14
|
+
branches:
|
|
15
|
+
- '*'
|
|
16
|
+
# Allow manually triggering the workflow.
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
20
|
+
concurrency:
|
|
21
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
22
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
23
|
+
cancel-in-progress: true
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
test:
|
|
27
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
31
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
32
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
33
|
+
strategy:
|
|
34
|
+
matrix:
|
|
35
|
+
include:
|
|
36
|
+
# Ruby 3.4
|
|
37
|
+
- ruby: "ruby-3.4"
|
|
38
|
+
appraisal: "ruby-3-4"
|
|
39
|
+
exec_cmd: "{KJ|CI:EXEC_CMD}"
|
|
40
|
+
rubygems: latest
|
|
41
|
+
bundler: latest
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Checkout
|
|
45
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
46
|
+
with:
|
|
47
|
+
persist-credentials: false
|
|
48
|
+
|
|
49
|
+
- name: Setup Ruby & RubyGems
|
|
50
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
51
|
+
with:
|
|
52
|
+
ruby-version: ${{ matrix.ruby }}
|
|
53
|
+
rubygems: ${{ matrix.rubygems }}
|
|
54
|
+
bundler: ${{ matrix.bundler }}
|
|
55
|
+
bundler-cache: true
|
|
56
|
+
manual-compatibility-bundle: true
|
|
57
|
+
gem-install-retries: 7
|
|
58
|
+
|
|
59
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
60
|
+
id: bundleAppraisalAttempt1
|
|
61
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
62
|
+
continue-on-error: true
|
|
63
|
+
|
|
64
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
65
|
+
id: bundleAppraisalAttempt2
|
|
66
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
67
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
68
|
+
|
|
69
|
+
- name: Restore RSpec status log
|
|
70
|
+
if: "${{!env.ACT}}"
|
|
71
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
72
|
+
with:
|
|
73
|
+
path: .rspec_status
|
|
74
|
+
key: rspec-status-ruby-3.4-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
75
|
+
restore-keys: |
|
|
76
|
+
rspec-status-ruby-3.4-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
77
|
+
rspec-status-ruby-3.4-${{matrix.ruby}}-${{matrix.appraisal}}-
|
|
78
|
+
|
|
79
|
+
- name: Tests for ${{ matrix.ruby }} ${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
|
|
80
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: Style
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- 'main'
|
|
10
|
+
- '*-stable'
|
|
11
|
+
tags:
|
|
12
|
+
- '!*' # Do not execute on tags
|
|
13
|
+
pull_request:
|
|
14
|
+
branches:
|
|
15
|
+
- '*'
|
|
16
|
+
# Allow manually triggering the workflow.
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
|
20
|
+
concurrency:
|
|
21
|
+
# The concurrency group contains the workflow name and the branch name.
|
|
22
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
23
|
+
cancel-in-progress: true
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
rubocop:
|
|
27
|
+
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
28
|
+
name: Style on ${{ matrix.ruby }}@current
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
31
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
32
|
+
strategy:
|
|
33
|
+
fail-fast: false
|
|
34
|
+
matrix:
|
|
35
|
+
include:
|
|
36
|
+
# Style
|
|
37
|
+
- ruby: "ruby"
|
|
38
|
+
appraisal: "style"
|
|
39
|
+
exec_cmd: "rake rubocop_gradual:check"
|
|
40
|
+
rubygems: latest
|
|
41
|
+
bundler: latest
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Checkout
|
|
45
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
46
|
+
with:
|
|
47
|
+
persist-credentials: false
|
|
48
|
+
|
|
49
|
+
- name: Setup Ruby & RubyGems
|
|
50
|
+
uses: appraisal-rb/setup-ruby-flash@925395edf973d2dc0a629919f407f3547a03d4b5 # v2.1 compatibility bundle installation
|
|
51
|
+
with:
|
|
52
|
+
ruby-version: ${{ matrix.ruby }}
|
|
53
|
+
rubygems: ${{ matrix.rubygems }}
|
|
54
|
+
bundler: ${{ matrix.bundler }}
|
|
55
|
+
bundler-cache: true
|
|
56
|
+
manual-compatibility-bundle: true
|
|
57
|
+
gem-install-retries: 7
|
|
58
|
+
|
|
59
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
60
|
+
id: bundleAppraisalAttempt1
|
|
61
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
62
|
+
# Continue to the next step on failure
|
|
63
|
+
continue-on-error: true
|
|
64
|
+
|
|
65
|
+
# Effectively an automatic retry of the previous step.
|
|
66
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
67
|
+
id: bundleAppraisalAttempt2
|
|
68
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
69
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
70
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
71
|
+
|
|
72
|
+
- name: Run ${{ matrix.appraisal }} checks via ${{ matrix.exec_cmd }}
|
|
73
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
74
|
+
|
|
75
|
+
- name: Validate RBS Environment
|
|
76
|
+
run: >-
|
|
77
|
+
bundle exec appraisal ${{ matrix.appraisal }} bundle exec ruby -rrbs -rpathname -e
|
|
78
|
+
'loader = RBS::EnvironmentLoader.new; loader.add(path: Pathname("sig")); RBS::Environment.from_loader(loader).resolve_type_names'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Targets the evergreen latest release of ruby
|
|
2
|
+
name: Templating
|
|
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
|
+
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 }}/Appraisal.root.gemfile
|
|
37
|
+
strategy:
|
|
38
|
+
matrix:
|
|
39
|
+
include:
|
|
40
|
+
# Latest Ruby
|
|
41
|
+
- ruby: "ruby"
|
|
42
|
+
appraisal: "templating"
|
|
43
|
+
exec_cmd: "rake kettle:jem:selftest"
|
|
44
|
+
rubygems: latest
|
|
45
|
+
bundler: latest
|
|
46
|
+
experimental: false
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- name: Checkout
|
|
50
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
51
|
+
with:
|
|
52
|
+
persist-credentials: false
|
|
53
|
+
|
|
54
|
+
- name: Setup Ruby & RubyGems
|
|
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: Update templating bootstrap dependencies
|
|
65
|
+
env:
|
|
66
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/Gemfile
|
|
67
|
+
# Refresh kettle-family with nomono. A just-released kettle-family can
|
|
68
|
+
# briefly be absent from the gem.coop index while the lockfile already
|
|
69
|
+
# points at it; keeping it locked makes Bundler fail before appraisal.
|
|
70
|
+
run: bundle update nomono kettle-family
|
|
71
|
+
|
|
72
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
73
|
+
id: bundleAppraisalAttempt1
|
|
74
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
75
|
+
# Continue to the next step on failure
|
|
76
|
+
continue-on-error: true
|
|
77
|
+
|
|
78
|
+
# Effectively an automatic retry of the previous step.
|
|
79
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
|
80
|
+
id: bundleAppraisalAttempt2
|
|
81
|
+
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
82
|
+
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
83
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} install
|
|
84
|
+
|
|
85
|
+
- name: Templating self-test for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
|
86
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
name: Current TruffleRuby
|
|
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-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
|
+
# NOTE: truffleruby does not support upgrading rubygems.
|
|
40
|
+
# truffleruby-34.0 (targets Ruby 3.4 compatibility)
|
|
41
|
+
- ruby: "truffleruby"
|
|
42
|
+
appraisal: "current"
|
|
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-truffle-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-${{github.run_id}}-${{github.run_attempt}}
|
|
85
|
+
restore-keys: |
|
|
86
|
+
rspec-status-truffle-${{matrix.ruby}}-${{matrix.appraisal}}-${{hashFiles('**/Gemfile.lock','Appraisal.root.gemfile','gemfiles/**/*.gemfile')}}-
|
|
87
|
+
rspec-status-truffle-${{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 }}
|