Skip to content

Commit 4de86fa

Browse files
committed
👷 [Improved] Add truffleruby 22.3, 23.0, 23.1, 24.1 to CI
1 parent 5413e01 commit 4de86fa

File tree

4 files changed

+97
-38
lines changed

4 files changed

+97
-38
lines changed

.github/workflows/heads.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,30 +36,31 @@ jobs:
3636
fail-fast: true
3737
matrix:
3838
include:
39+
# NOTE: Heads use default rubygems / bundler; their defaults are custom, unreleased, and from the future!
3940
# ruby-head
4041
- ruby: "ruby-head"
4142
appraisal: "ruby-head"
4243
exec_cmd: "rake spec"
4344
gemfile: "Appraisal.root"
44-
rubygems: latest
45-
bundler: latest
45+
rubygems: default
46+
bundler: default
4647

4748
# truffleruby-head
4849
- ruby: "truffleruby-head"
4950
appraisal: "truffleruby-head"
5051
exec_cmd: "rake spec"
5152
gemfile: "Appraisal.root"
52-
rubygems: latest
53-
bundler: latest
53+
rubygems: default
54+
bundler: default
5455

5556
# jruby-head
5657
# Error output has a significantly different format in JRuby :(
5758
# - ruby: "jruby-head"
5859
# appraisal: "jruby-head"
5960
# exec_cmd: "rake spec"
6061
# gemfile: "Appraisal.root"
61-
# rubygems: latest
62-
# bundler: latest
62+
# rubygems: default
63+
# bundler: default
6364

6465
steps:
6566
- name: Checkout

.github/workflows/legacy.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,6 @@ jobs:
4444
rubygems: '3.5.23'
4545
bundler: '2.5.23'
4646

47-
# truffleruby-22.3 (targets Ruby 3.0 compatibility)
48-
- ruby: "truffleruby-22.3"
49-
appraisal: "ruby-3-0"
50-
exec_cmd: "rake spec"
51-
gemfile: "Appraisal.root"
52-
rubygems: default
53-
bundler: default
54-
5547
steps:
5648
- name: Checkout
5749
uses: actions/checkout@v4

.github/workflows/supported.yml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,6 @@ jobs:
4343
rubygems: latest
4444
bundler: latest
4545

46-
# truffleruby-23.0 (targets Ruby 3.1 compatibility)
47-
- ruby: "truffleruby-23.0"
48-
appraisal: "ruby-3-1"
49-
exec_cmd: "rake spec"
50-
gemfile: "Appraisal.root"
51-
rubygems: default
52-
bundler: default
53-
5446
# Ruby 3.2
5547
- ruby: "3.2"
5648
appraisal: "ruby-3-2"
@@ -59,14 +51,6 @@ jobs:
5951
rubygems: latest
6052
bundler: latest
6153

62-
# truffleruby-23.1 (targets Ruby 3.2 compatibility)
63-
- ruby: "truffleruby-23.1"
64-
appraisal: "ruby-3-2"
65-
exec_cmd: "rake spec"
66-
gemfile: "Appraisal.root"
67-
rubygems: default
68-
bundler: default
69-
7054
# Ruby 3.3
7155
- ruby: "3.3"
7256
appraisal: "ruby-3-3"
@@ -75,14 +59,6 @@ jobs:
7559
rubygems: latest
7660
bundler: latest
7761

78-
# truffleruby-24.1 (targets Ruby 3.3.5 compatibility)
79-
- ruby: "truffleruby-24.1"
80-
appraisal: "ruby-3-3"
81-
exec_cmd: "rake spec"
82-
gemfile: "Appraisal.root"
83-
rubygems: default
84-
bundler: default
85-
8662
# Ruby 3.4
8763
- ruby: "3.4"
8864
appraisal: "ruby-3-4"

.github/workflows/truffle.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Supported Compat Matrix
2+
3+
env:
4+
K_SOUP_COV_DO: false
5+
6+
on:
7+
push:
8+
branches:
9+
- 'main'
10+
tags:
11+
- '!*' # Do not execute on tags
12+
pull_request:
13+
branches:
14+
- '*'
15+
# Allow manually triggering the workflow.
16+
workflow_dispatch:
17+
18+
permissions:
19+
contents: read
20+
21+
# Cancels all previous workflow runs for the same branch that have not yet completed.
22+
concurrency:
23+
# The concurrency group contains the workflow name and the branch name.
24+
group: "${{ github.workflow }}-${{ github.ref }}"
25+
cancel-in-progress: true
26+
27+
jobs:
28+
test:
29+
name: Specs - Ruby ${{ matrix.ruby }} ${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
30+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
31+
runs-on: ubuntu-22.04
32+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
33+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
34+
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
35+
strategy:
36+
matrix:
37+
include:
38+
# truffleruby-22.3 (targets Ruby 3.0 compatibility)
39+
- ruby: "truffleruby-22.3"
40+
appraisal: "ruby-3-0"
41+
exec_cmd: "rake spec"
42+
gemfile: "Appraisal.root"
43+
rubygems: default
44+
bundler: default
45+
46+
# truffleruby-23.0 (targets Ruby 3.1 compatibility)
47+
- ruby: "truffleruby-23.0"
48+
appraisal: "ruby-3-1"
49+
exec_cmd: "rake spec"
50+
gemfile: "Appraisal.root"
51+
rubygems: default
52+
bundler: default
53+
54+
# truffleruby-23.1 (targets Ruby 3.2 compatibility)
55+
- ruby: "truffleruby-23.1"
56+
appraisal: "ruby-3-2"
57+
exec_cmd: "rake spec"
58+
gemfile: "Appraisal.root"
59+
rubygems: default
60+
bundler: default
61+
62+
# truffleruby-24.1 (targets Ruby 3.3.5 compatibility)
63+
- ruby: "truffleruby-24.1"
64+
appraisal: "ruby-3-3"
65+
exec_cmd: "rake spec"
66+
gemfile: "Appraisal.root"
67+
rubygems: default
68+
bundler: default
69+
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v4
73+
74+
- name: Setup Ruby & RubyGems
75+
uses: ruby/setup-ruby@v1
76+
with:
77+
ruby-version: ${{ matrix.ruby }}
78+
rubygems: ${{ matrix.rubygems }}
79+
bundler: ${{ matrix.bundler }}
80+
bundler-cache: false
81+
82+
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
83+
# We need to do this first to get appraisal installed.
84+
# NOTE: This does not use the main Gemfile at all.
85+
- name: Bundle install for Appraisal ${{ matrix.appraisal }}
86+
run: bundle
87+
- name: Install Appraisal ${{ matrix.appraisal }} dependencies
88+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
89+
- name: Run ${{ matrix.appraisal }} tests via ${{ matrix.exec_cmd }}
90+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}

0 commit comments

Comments
 (0)