Skip to content

Commit 4db1a0f

Browse files
committed
feat(ruby): Ruby language bindings
1 parent a103f6b commit 4db1a0f

111 files changed

Lines changed: 23948 additions & 268 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 76 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@v5
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@v5
141149
with:
@@ -196,6 +204,7 @@ jobs:
196204
node: ["20"] # EOS 2026-10-30
197205
os: [ubuntu-latest]
198206
python: ["3.10"]
207+
ruby: ["3.3"]
199208
# Add specific combinations to be tested against (to restrict cardinality)
200209
include:
201210
# Test using Windows
@@ -206,6 +215,7 @@ jobs:
206215
java: "8"
207216
node: "20"
208217
python: "3.10"
218+
ruby: "3.3"
209219
# Test using macOS
210220
- title: "macOS"
211221
os: macos-latest
@@ -214,6 +224,7 @@ jobs:
214224
java: "8"
215225
node: "20"
216226
python: "3.10"
227+
ruby: "3.3"
217228
# Test alternate Nodes
218229
- title: "Node 20"
219230
java: "8"
@@ -222,20 +233,23 @@ jobs:
222233
node: "20" # EOL 2026-04-30
223234
os: ubuntu-latest
224235
python: "3.10"
236+
ruby: "3.3"
225237
- title: "Node 22"
226238
java: "8"
227239
dotnet: "6.0.x"
228240
go: "1.25"
229241
node: "22" # EOL 2027-04-30
230242
os: ubuntu-latest
231243
python: "3.10"
244+
ruby: "3.3"
232245
- title: "Node 24"
233246
java: "8"
234247
dotnet: "6.0.x"
235248
go: "1.25"
236249
node: "24" # EOL 2028-04-30
237250
os: ubuntu-latest
238251
python: "3.10"
252+
ruby: "3.3"
239253
# Test alternate .NETs
240254
- title: ".NET 7.0"
241255
java: "8"
@@ -244,27 +258,31 @@ jobs:
244258
node: "20"
245259
os: ubuntu-latest
246260
python: "3.10"
261+
ruby: "3.3"
247262
- title: ".NET 8.0"
248263
java: "8"
249264
dotnet: "7.0.x"
250265
go: "1.25"
251266
node: "20"
252267
os: ubuntu-latest
253268
python: "3.10"
269+
ruby: "3.3"
254270
- title: ".NET 9.0"
255271
java: "8"
256272
dotnet: "9.0.x"
257273
go: "1.25"
258274
node: "20"
259275
os: ubuntu-latest
260276
python: "3.10"
277+
ruby: "3.3"
261278
- title: ".NET 10.0"
262279
java: "8"
263280
dotnet: "10.0.x"
264281
go: "1.25"
265282
node: "20"
266283
os: ubuntu-latest
267284
python: "3.10"
285+
ruby: "3.3"
268286
# Test alternate Gos
269287
- title: "Go 1.25"
270288
java: "8"
@@ -273,13 +291,15 @@ jobs:
273291
node: "20"
274292
os: ubuntu-latest
275293
python: "3.10"
294+
ruby: "3.3"
276295
- title: "Go 1.26"
277296
java: "8"
278297
dotnet: "6.0.x"
279298
go: "1.26"
280299
node: "20"
281300
os: ubuntu-latest
282301
python: "3.10"
302+
ruby: "3.3"
283303
# Test alternate Javas
284304
- title: "Java 11"
285305
java: "11"
@@ -288,6 +308,7 @@ jobs:
288308
node: "20"
289309
os: ubuntu-latest
290310
python: "3.10"
311+
ruby: "3.3"
291312
# Test alternate Pythons
292313
- title: "Python 3.10"
293314
python: "3.10"
@@ -296,34 +317,80 @@ jobs:
296317
java: "8"
297318
node: "20"
298319
os: ubuntu-latest
320+
ruby: "3.3"
299321
- title: "Python 3.11"
300322
python: "3.11"
301323
dotnet: "6.0.x"
302324
go: "1.25"
303325
java: "8"
304326
node: "20"
305327
os: ubuntu-latest
328+
ruby: "3.3"
306329
- title: "Python 3.12"
307330
python: "3.12"
308331
dotnet: "6.0.x"
309332
go: "1.25"
310333
java: "8"
311334
node: "20"
312335
os: ubuntu-latest
336+
ruby: "3.3"
313337
- title: "Python 3.13"
314338
python: "3.13"
315339
dotnet: "6.0.x"
316340
go: "1.25"
317341
java: "8"
318342
node: "20"
319343
os: ubuntu-latest
344+
ruby: "3.3"
320345
- title: "Python 3.14"
321346
python: "3.14"
322347
dotnet: "6.0.x"
323348
go: "1.25"
324349
java: "8"
325350
node: "20"
326351
os: ubuntu-latest
352+
ruby: "3.3"
353+
# Test alternate Rubies
354+
- title: "Ruby 3.1"
355+
ruby: "3.1"
356+
dotnet: "6.0.x"
357+
go: "1.25"
358+
java: "8"
359+
node: "20"
360+
os: ubuntu-latest
361+
python: "3.10"
362+
- title: "Ruby 3.2"
363+
ruby: "3.2"
364+
dotnet: "6.0.x"
365+
go: "1.25"
366+
java: "8"
367+
node: "20"
368+
os: ubuntu-latest
369+
python: "3.10"
370+
- title: "Ruby 3.3"
371+
ruby: "3.3"
372+
dotnet: "6.0.x"
373+
go: "1.25"
374+
java: "8"
375+
node: "20"
376+
os: ubuntu-latest
377+
python: "3.10"
378+
- title: "Ruby 3.4"
379+
ruby: "3.4"
380+
dotnet: "6.0.x"
381+
go: "1.25"
382+
java: "8"
383+
node: "20"
384+
os: ubuntu-latest
385+
python: "3.10"
386+
- title: "Ruby 4.0"
387+
ruby: "4.0"
388+
dotnet: "6.0.x"
389+
go: "1.25"
390+
java: "8"
391+
node: "20"
392+
os: ubuntu-latest
393+
python: "3.10"
327394
runs-on: ${{ matrix.os }}
328395
steps:
329396
# Check out the code
@@ -375,6 +442,10 @@ jobs:
375442
- name: "Linux: Install python3-venv"
376443
if: runner.os == 'Linux'
377444
run: sudo apt install -y python3-venv
445+
- name: Set up Ruby ${{ matrix.ruby }}
446+
uses: ruby/setup-ruby@v1
447+
with:
448+
ruby-version: ${{ matrix.ruby }}
378449
- if: runner.os == 'Windows'
379450
name: Windows performance improvements
380451
run: |-
@@ -433,6 +504,7 @@ jobs:
433504
rosetta:
434505
- latest
435506
- 5.9.x
507+
- 6.0.x
436508
steps:
437509
# Check out the code
438510
- name: Download Artifact
@@ -464,6 +536,10 @@ jobs:
464536
python-version: "3.11"
465537
- name: Install python3-venv
466538
run: sudo apt install -y python3-venv
539+
- name: Set up Ruby 3.3
540+
uses: ruby/setup-ruby@v1
541+
with:
542+
ruby-version: "3.3"
467543
# Show time!
468544
- name: Prepare Work Tree
469545
# 1) Install aws-cdk-lib,
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# Helps with using npm package-locally, while in a yarn workflow (avoids coupling scripts to yarn).
22
# This is needed because yarn goes out of it's way to ensure it controls what `node` binary is used (for good!)
33
scripts-prepend-node-path=auto
4+
@omarqureshi:registry=https://npm.pkg.github.com

0 commit comments

Comments
 (0)