Skip to content

Commit 0514baf

Browse files
committed
ci: Ruby in the build matrix; TypeScript 6 toolchain accommodation
Ruby 3.3 joins every job's setup and the OS matrix gains Ruby 3.4 and 4.0 rows (Linux/macOS/Windows). yarn.lock carries the ruby-runtime test package's dependency graph. tsconfig-base.json gains ignoreDeprecations "6.0": the shared compiler options include settings TypeScript 6 flags as deprecated, and the Ruby target was developed against a TS 6 toolchain. This is repo-wide and deliberately surfaced here for review — it can be dropped if the mainline toolchain does not need it.
1 parent 1cd2e21 commit 0514baf

4 files changed

Lines changed: 81 additions & 1 deletion

File tree

.github/workflows/main.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ jobs:
5252
cache: pip
5353
- name: Install python3-venv
5454
run: sudo apt install -y python3-venv
55+
- name: Set up Ruby 3.3
56+
uses: ruby/setup-ruby@v1
57+
with:
58+
ruby-version: "3.3"
5559
- name: Cache
5660
uses: actions/cache@v6
5761
with:
@@ -136,6 +140,10 @@ jobs:
136140
cache: pip
137141
- name: Install python3-venv
138142
run: sudo apt install -y python3-venv
143+
- name: Set up Ruby 3.3
144+
uses: ruby/setup-ruby@v1
145+
with:
146+
ruby-version: "3.3"
139147
- name: Cache
140148
uses: actions/cache@v6
141149
with:
@@ -201,6 +209,7 @@ jobs:
201209
node: ["20"] # EOS 2026-10-30
202210
os: [ubuntu-latest]
203211
python: ["3.10"]
212+
ruby: ["3.3"]
204213
# Add specific combinations to be tested against (to restrict cardinality)
205214
include:
206215
# Test using Windows
@@ -211,6 +220,7 @@ jobs:
211220
java: "8"
212221
node: "20"
213222
python: "3.10"
223+
ruby: "3.3"
214224
# Test using macOS
215225
- title: "macOS"
216226
os: macos-latest
@@ -219,6 +229,7 @@ jobs:
219229
java: "8"
220230
node: "20"
221231
python: "3.10"
232+
ruby: "3.3"
222233
# Test alternate Nodes
223234
- title: "Node 20"
224235
java: "8"
@@ -227,20 +238,23 @@ jobs:
227238
node: "20" # EOL 2026-04-30
228239
os: ubuntu-latest
229240
python: "3.10"
241+
ruby: "3.3"
230242
- title: "Node 22"
231243
java: "8"
232244
dotnet: "6.0.x"
233245
go: "1.25"
234246
node: "22" # EOL 2027-04-30
235247
os: ubuntu-latest
236248
python: "3.10"
249+
ruby: "3.3"
237250
- title: "Node 24"
238251
java: "8"
239252
dotnet: "6.0.x"
240253
go: "1.25"
241254
node: "24" # EOL 2028-04-30
242255
os: ubuntu-latest
243256
python: "3.10"
257+
ruby: "3.3"
244258
# Test alternate .NETs
245259
- title: ".NET 7.0"
246260
java: "8"
@@ -249,27 +263,31 @@ jobs:
249263
node: "20"
250264
os: ubuntu-latest
251265
python: "3.10"
266+
ruby: "3.3"
252267
- title: ".NET 8.0"
253268
java: "8"
254269
dotnet: "7.0.x"
255270
go: "1.25"
256271
node: "20"
257272
os: ubuntu-latest
258273
python: "3.10"
274+
ruby: "3.3"
259275
- title: ".NET 9.0"
260276
java: "8"
261277
dotnet: "9.0.x"
262278
go: "1.25"
263279
node: "20"
264280
os: ubuntu-latest
265281
python: "3.10"
282+
ruby: "3.3"
266283
- title: ".NET 10.0"
267284
java: "8"
268285
dotnet: "10.0.x"
269286
go: "1.25"
270287
node: "20"
271288
os: ubuntu-latest
272289
python: "3.10"
290+
ruby: "3.3"
273291
# Test alternate Gos
274292
- title: "Go 1.25"
275293
java: "8"
@@ -278,13 +296,15 @@ jobs:
278296
node: "20"
279297
os: ubuntu-latest
280298
python: "3.10"
299+
ruby: "3.3"
281300
- title: "Go 1.26"
282301
java: "8"
283302
dotnet: "6.0.x"
284303
go: "1.26"
285304
node: "20"
286305
os: ubuntu-latest
287306
python: "3.10"
307+
ruby: "3.3"
288308
# Test alternate Javas
289309
- title: "Java 11"
290310
java: "11"
@@ -293,6 +313,7 @@ jobs:
293313
node: "20"
294314
os: ubuntu-latest
295315
python: "3.10"
316+
ruby: "3.3"
296317
# Test alternate Pythons
297318
- title: "Python 3.10"
298319
python: "3.10"
@@ -301,34 +322,57 @@ jobs:
301322
java: "8"
302323
node: "20"
303324
os: ubuntu-latest
325+
ruby: "3.3"
304326
- title: "Python 3.11"
305327
python: "3.11"
306328
dotnet: "6.0.x"
307329
go: "1.25"
308330
java: "8"
309331
node: "20"
310332
os: ubuntu-latest
333+
ruby: "3.3"
311334
- title: "Python 3.12"
312335
python: "3.12"
313336
dotnet: "6.0.x"
314337
go: "1.25"
315338
java: "8"
316339
node: "20"
317340
os: ubuntu-latest
341+
ruby: "3.3"
318342
- title: "Python 3.13"
319343
python: "3.13"
320344
dotnet: "6.0.x"
321345
go: "1.25"
322346
java: "8"
323347
node: "20"
324348
os: ubuntu-latest
349+
ruby: "3.3"
325350
- title: "Python 3.14"
326351
python: "3.14"
327352
dotnet: "6.0.x"
328353
go: "1.25"
329354
java: "8"
330355
node: "20"
331356
os: ubuntu-latest
357+
ruby: "3.3"
358+
# Test alternate Rubies (3.1/3.2 are EOL and unsupported —
359+
# required_ruby_version is >= 3.3.0; 3.3 itself is the baseline)
360+
- title: "Ruby 3.4"
361+
ruby: "3.4"
362+
dotnet: "6.0.x"
363+
go: "1.25"
364+
java: "8"
365+
node: "20"
366+
os: ubuntu-latest
367+
python: "3.10"
368+
- title: "Ruby 4.0"
369+
ruby: "4.0"
370+
dotnet: "6.0.x"
371+
go: "1.25"
372+
java: "8"
373+
node: "20"
374+
os: ubuntu-latest
375+
python: "3.10"
332376
runs-on: ${{ matrix.os }}
333377
steps:
334378
# Check out the code
@@ -380,6 +424,10 @@ jobs:
380424
- name: "Linux: Install python3-venv"
381425
if: runner.os == 'Linux'
382426
run: sudo apt install -y python3-venv
427+
- name: Set up Ruby ${{ matrix.ruby }}
428+
uses: ruby/setup-ruby@v1
429+
with:
430+
ruby-version: ${{ matrix.ruby }}
383431
- if: runner.os == 'Windows'
384432
name: Windows performance improvements
385433
run: |-
@@ -470,6 +518,10 @@ jobs:
470518
python-version: "3.11"
471519
- name: Install python3-venv
472520
run: sudo apt install -y python3-venv
521+
- name: Set up Ruby 3.3
522+
uses: ruby/setup-ruby@v1
523+
with:
524+
ruby-version: "3.3"
473525
# Show time!
474526
- name: Prepare Work Tree
475527
# 1) Install aws-cdk-lib,

buildspec.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ version: 0.2
22

33
phases:
44
install:
5+
runtime-versions:
6+
ruby: 3.3
57
commands:
68
- corepack enable
79
- yarn install --immutable

tsconfig-base.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"compilerOptions": {
3+
"ignoreDeprecations": "6.0",
34
"target": "ES2020", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
45
"module": "Node16", /* Specify module code generation. */
56
"moduleResolution": "Node16", /* Specify module resolution strategy. */

yarn.lock

Lines changed: 26 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)