Skip to content

Commit ea7f912

Browse files
committed
Setup Github Action
1 parent 4c8d2c0 commit ea7f912

File tree

5 files changed

+71
-4
lines changed

5 files changed

+71
-4
lines changed

.github/workflows/test.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
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+
- latest
22+
experimental: [false]
23+
include:
24+
- ruby_version: head
25+
crystal_version: nightly
26+
experimental: true
27+
- ruby_version: head
28+
crystal_version: 1.16.0
29+
experimental: true
30+
name: Ruby ${{ matrix.ruby_version }} / Crystal ${{ matrix.crystal_version }}
31+
continue-on-error: ${{ matrix.experimental }}
32+
steps:
33+
- name: "[Git] Checkout code"
34+
uses: actions/checkout@v4
35+
36+
- uses: crystal-lang/install-crystal@v1
37+
with:
38+
crystal: ${{ matrix.crystal_version }}
39+
40+
- uses: ruby/setup-ruby@v1
41+
with:
42+
ruby-version: ${{ matrix.ruby_version }}
43+
bundler-cache: true
44+
45+
- name: "[Test] Run tests"
46+
run: |
47+
bundle exec crystalruby clean
48+
bundle exec rake test
49+
env:
50+
CRYSTAL_RUBY_SINGLE_THREAD_MODE: true
51+
52+
- name: "[Test] Validate examples"
53+
run: |
54+
for example in examples/**/*.rb; do
55+
echo " > Processing $example..."
56+
bundle exec ruby $example
57+
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: 8 additions & 1 deletion
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, < 1.5.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)
2022
ffi (1.17.0)
2123
ffi (1.17.0-arm64-darwin)
24+
fiddle (1.1.8)
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
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
3636
spec.add_dependency "ffi"
3737
spec.add_dependency "fileutils", "~> 1.7"
3838
spec.add_dependency "prism", ">= 1.3.0", "< 1.5.0"
39+
spec.add_dependency "logger"
3940
# For more information and examples about making a new gem, check out our
4041
# guide at: https://bundler.io/guides/creating_gem.html
4142
end

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)