Skip to content

Commit 3ac168d

Browse files
committed
Setup Github Action
1 parent 4420411 commit 3ac168d

File tree

5 files changed

+75
-6
lines changed

5 files changed

+75
-6
lines changed

.github/workflows/test.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Test
2+
on:
3+
push:
4+
branches: [master]
5+
pull_request:
6+
branches: [master]
7+
workflow_dispatch:
8+
schedule:
9+
- cron: 13 7 * * 6
10+
jobs:
11+
test:
12+
runs-on: ubuntu-latest
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
ruby_version:
17+
- 3.3.8
18+
- 3.4.3
19+
crystal_version:
20+
- 1.15.1
21+
experimental: [false]
22+
include:
23+
- ruby_version: 3.4.3
24+
crystal_version: 1.16.0
25+
experimental: true
26+
- ruby_version: head
27+
crystal_version: nightly
28+
experimental: true
29+
- ruby_version: head
30+
crystal_version: 1.16.0
31+
experimental: true
32+
name: Ruby ${{ matrix.ruby_version }} / Crystal ${{ matrix.crystal_version }}
33+
continue-on-error: ${{ matrix.experimental }}
34+
steps:
35+
- name: "[Git] Checkout code"
36+
uses: actions/checkout@v4
37+
38+
- uses: crystal-lang/install-crystal@v1
39+
with:
40+
crystal: ${{ matrix.crystal_version }}
41+
42+
- uses: ruby/setup-ruby@v1
43+
with:
44+
ruby-version: ${{ matrix.ruby_version }}
45+
bundler-cache: true
46+
47+
- name: "[Test] Run tests"
48+
run: |
49+
bundle exec crystalruby clean
50+
bundle exec rake test
51+
env:
52+
CRYSTAL_RUBY_SINGLE_THREAD_MODE: true
53+
54+
- name: "[Test] Validate examples"
55+
run: |
56+
for example in examples/**/*.rb; do
57+
echo " > Processing $example..."
58+
bundle exec ruby $example
59+
done

Gemfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ source "https://rubygems.org"
55
# Specify your gem's dependencies in crystalruby.gemspec
66
gemspec
77

8-
gem 'ffi'
98
gem "rake", "~> 13.0"
9+
gem "ostruct" # It is used in rake gem
1010

1111
gem "minitest", "~> 5.16"
1212
gem "minitest-reporters", "~> 1.4"
13+
gem "benchmark"
1314

1415
gem "rubocop", "~> 1.21"
1516
gem "debug", ">= 1.1.0"
17+
gem "fiddle" # It is used in reline -> irb -> debug gem

Gemfile.lock

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,38 @@ PATH
55
digest
66
ffi
77
fileutils (~> 1.7)
8+
logger
89
prism (~> 1.3.0)
910

1011
GEM
1112
remote: https://rubygems.org/
1213
specs:
1314
ansi (1.5.0)
1415
ast (2.4.2)
16+
benchmark (0.4.0)
1517
builder (3.3.0)
1618
debug (1.9.2)
1719
irb (~> 1.10)
1820
reline (>= 0.3.8)
1921
digest (3.1.1)
20-
ffi (1.17.0)
21-
ffi (1.17.0-arm64-darwin)
22+
ffi (1.17.1)
23+
ffi (1.17.1-arm64-darwin)
24+
fiddle (1.1.6)
2225
fileutils (1.7.2)
2326
io-console (0.7.2)
2427
irb (1.12.0)
2528
rdoc
2629
reline (>= 0.4.2)
2730
json (2.7.1)
2831
language_server-protocol (3.17.0.3)
32+
logger (1.7.0)
2933
minitest (5.22.3)
3034
minitest-reporters (1.7.1)
3135
ansi
3236
builder
3337
minitest (>= 5.0)
3438
ruby-progressbar
39+
ostruct (0.6.1)
3540
parallel (1.24.0)
3641
parser (3.3.0.5)
3742
ast (~> 2.4.1)
@@ -70,11 +75,13 @@ PLATFORMS
7075
ruby
7176

7277
DEPENDENCIES
78+
benchmark
7379
crystalruby!
7480
debug (>= 1.1.0)
75-
ffi
81+
fiddle
7682
minitest (~> 5.16)
7783
minitest-reporters (~> 1.4)
84+
ostruct
7885
rake (~> 13.0)
7986
rubocop (~> 1.21)
8087

crystalruby.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Gem::Specification.new do |spec|
3535
spec.add_dependency "digest"
3636
spec.add_dependency "ffi"
3737
spec.add_dependency "fileutils", "~> 1.7"
38+
spec.add_dependency "logger"
3839
spec.add_dependency "prism", "~> 1.3.0"
3940
# For more information and examples about making a new gem, check out our
4041
# guide at: https://bundler.io/guides/creating_gem.html

test/test_helper.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
Minitest.parallel_executor = Struct.new(:shutdown).new(nil)
99

1010
CrystalRuby.configure do |config|
11-
config.verbose = false
12-
config.log_level = :warn
11+
config.verbose = true
12+
config.log_level = :debug
1313
config.colorize_log_output = true
1414
config.debug = true
1515
config.single_thread_mode = !!ENV["CRYSTAL_RUBY_SINGLE_THREAD_MODE"]

0 commit comments

Comments
 (0)