Skip to content

Commit 7795589

Browse files
committed
Setup Github Action
1 parent 417e627 commit 7795589

File tree

5 files changed

+77
-6
lines changed

5 files changed

+77
-6
lines changed

.github/workflows/test.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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+
crystal_version:
19+
- 1.15.1
20+
experimental: [false]
21+
include:
22+
- ruby_version: 3.4.3
23+
crystal_version: 1.15.1
24+
experimental: true
25+
- ruby_version: 3.4.3
26+
crystal_version: 1.16.0
27+
experimental: true
28+
- ruby_version: head
29+
crystal_version: nightly
30+
experimental: true
31+
- ruby_version: head
32+
crystal_version: 1.16.0
33+
experimental: true
34+
name: Ruby ${{ matrix.ruby_version }} / Crystal ${{ matrix.crystal_version }}
35+
continue-on-error: ${{ matrix.experimental }}
36+
steps:
37+
- name: "[Git] Checkout code"
38+
uses: actions/checkout@v4
39+
40+
- uses: crystal-lang/install-crystal@v1
41+
with:
42+
crystal: ${{ matrix.crystal_version }}
43+
44+
- uses: ruby/setup-ruby@v1
45+
with:
46+
ruby-version: ${{ matrix.ruby_version }}
47+
bundler-cache: true
48+
49+
- name: "[Test] Run tests"
50+
run: |
51+
bundle exec crystalruby clean
52+
bundle exec rake test
53+
env:
54+
CRYSTAL_RUBY_SINGLE_THREAD_MODE: true
55+
56+
- name: "[Test] Validate examples"
57+
run: |
58+
for example in examples/**/*.rb; do
59+
echo " > Processing $example..."
60+
bundle exec ruby $example
61+
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)