@@ -23,328 +23,26 @@ jobs:
2323 - name : Lint
2424 run : bundle exec rake lint
2525
26- template :
27- runs-on : ubuntu-latest
28- env :
29- BUNDLE_GEMFILE : gemfiles/2.7/Gemfile
30- steps :
31- - uses : actions/checkout@v5
32- - name : Set up Ruby
33- uses : ruby/setup-ruby@v1
34- with :
35- ruby-version : " 2.7.0"
36- bundler-cache : true
37- - name : Generate templates
38- run : bundle exec rake templates
39- env :
40- LANG : " C"
41-
42- typecheck :
43- runs-on : ubuntu-latest
44- env :
45- BUNDLE_GEMFILE : gemfiles/typecheck/Gemfile
46- steps :
47- - uses : actions/checkout@v5
48- - name : Set up Ruby
49- uses : ruby/setup-ruby@v1
50- with :
51- ruby-version : " 3.4"
52- bundler-cache : true
53- - name : Check Sorbet
54- run : bundle exec rake typecheck:tapioca typecheck:sorbet
55- - name : Check Steep
56- run : bundle exec rake typecheck:steep
57- - name : Check field kinds
58- run : rm lib/prism/node.rb && CHECK_FIELD_KIND=true bundle exec rake
59-
6026 build :
6127 strategy :
6228 fail-fast : false
6329 matrix :
6430 os :
65- - ubuntu-latest
66- - ubuntu-24.04-arm
67- - macos-latest
68- # - windows-latest <-- failing with fiddle error, temporarily disabled
31+ # - ubuntu-latest
32+ # - ubuntu-24.04-arm
33+ # - macos-latest
34+ - windows-latest
6935 runs-on : ${{ matrix.os }}
7036 steps :
7137 - uses : actions/checkout@v5
7238 - name : Set up Ruby
7339 uses : ruby/setup-ruby@v1
7440 with :
7541 ruby-version : head
76- bundler-cache : true
42+
43+ - run : cat D:/rubyinstaller-head-x64/lib/ruby/3.5.0+4/win32/resolv.rb
44+
45+ - run : bundle install
7746 - name : Run Ruby tests
7847 run : bundle exec rake
7948 shell : bash
80-
81- build-ibm :
82- if : github.repository == 'ruby/prism'
83- strategy :
84- fail-fast : false
85- matrix :
86- os :
87- - ubuntu-24.04-ppc64le
88- - ubuntu-24.04-s390x
89- runs-on : ${{ matrix.os }}
90- steps :
91- - uses : actions/checkout@v5
92- - name : Set up Ruby
93- run : |
94- sudo apt-get update
95- sudo apt-get install ruby-full bundler libyaml-dev
96- - name : Install dependencies
97- run : sudo bundle install --jobs $(nproc)
98- - name : Run Ruby tests
99- run : bundle exec rake
100- shell : bash
101-
102- build-ffi :
103- strategy :
104- fail-fast : false
105- matrix :
106- target :
107- - { ruby: "head", gemfile: "3.5" }
108- - { ruby: "jruby-10.0.0.0", gemfile: "jruby" } # https://github.com/jruby/jruby/issues/8923
109- - { ruby: "truffleruby", gemfile: "truffleruby" }
110- runs-on : ubuntu-latest
111- env :
112- PRISM_FFI_BACKEND : " true"
113- BUNDLE_GEMFILE : gemfiles/${{ matrix.target.gemfile }}/Gemfile
114- steps :
115- - uses : actions/checkout@v5
116- - name : Set up Ruby
117- uses : ruby/setup-ruby@v1
118- with :
119- ruby-version : ${{ matrix.target.ruby }}
120- bundler-cache : true
121- - name : Run Ruby tests
122- run : bundle exec rake
123-
124- build-without-assertions :
125- strategy :
126- fail-fast : false
127- matrix :
128- os : [ubuntu-22.04, ubuntu-24.04]
129- runs-on : ${{ matrix.os }}
130- steps :
131- - uses : actions/checkout@v5
132- - name : Set up Ruby
133- uses : ruby/setup-ruby@v1
134- with :
135- ruby-version : head
136- bundler-cache : true
137- - name : Run Ruby tests
138- run : bundle exec rake compile_no_debug test
139-
140- build-debug :
141- strategy :
142- fail-fast : false
143- matrix :
144- os :
145- - ubuntu-latest
146- - ubuntu-24.04-arm
147- - macos-latest
148- # - windows-latest <-- failing with fiddle error, temporarily disabled
149- runs-on : ${{ matrix.os }}
150- steps :
151- - uses : actions/checkout@v5
152- - name : Set up Ruby
153- uses : ruby/setup-ruby@v1
154- with :
155- ruby-version : head
156- bundler-cache : true
157- - name : Run Ruby tests
158- run : bundle exec rake
159- env :
160- PRISM_BUILD_DEBUG : " 1"
161-
162- build-minimal :
163- runs-on : ubuntu-latest
164- steps :
165- - uses : actions/checkout@v5
166- - name : Set up Ruby
167- uses : ruby/setup-ruby@v1
168- with :
169- ruby-version : head
170- bundler-cache : true
171- - name : Run Ruby tests
172- run : bundle exec rake compile_minimal test
173- env :
174- PRISM_BUILD_MINIMAL : " 1"
175-
176- build-java :
177- runs-on : ubuntu-latest
178- env :
179- JRUBY_OPTS : " --dev"
180- steps :
181- - uses : actions/checkout@v5
182- - name : Set up JRuby
183- uses : ruby/setup-ruby@v1
184- with :
185- ruby-version : jruby
186- bundler-cache : true
187- - name : Run Java Loader test
188- run : PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS=1 JRUBY_OPTS="-J-ea" bundle exec rake test:java_loader
189-
190- lex-ruby :
191- runs-on : ubuntu-latest
192- steps :
193- - uses : actions/checkout@v5
194- - name : Set up Ruby
195- uses : ruby/setup-ruby@v1
196- with :
197- ruby-version : head
198- bundler-cache : true
199- - name : Lex ruby/ruby
200- run : bundle exec rake lex:ruby
201-
202- lex-discourse :
203- runs-on : ubuntu-latest
204- steps :
205- - uses : actions/checkout@v5
206- - name : Set up Ruby
207- uses : ruby/setup-ruby@v1
208- with :
209- ruby-version : head
210- bundler-cache : true
211- - name : Lex discourse/discourse
212- run : bundle exec rake lex:discourse
213-
214- lex-top-100 :
215- runs-on : ubuntu-latest
216- steps :
217- - uses : actions/checkout@v5
218- - name : Set up Ruby
219- uses : ruby/setup-ruby@v1
220- with :
221- ruby-version : head
222- bundler-cache : true
223- - name : Lex Top 100 Gems
224- run : bundle exec rake lex:topgems
225- - name : Parse Top 100 Gems
226- run : bundle exec rake parse:topgems
227- - name : Serialized size stats with all fields
228- run : bundle exec rake serialized_size:topgems
229- - name : Recompile with only semantic fields
230- run : PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS=1 bundle exec rake clobber compile
231- - name : Serialized size stats with only semantic fields
232- run : bundle exec rake serialized_size:topgems
233-
234- memcheck :
235- runs-on : ubuntu-24.04
236- steps :
237- - uses : actions/checkout@v5
238- - name : Install valgrind
239- run : |
240- sudo apt-get update
241- sudo apt-get install -y valgrind
242- - name : Set up Ruby
243- uses : ruby/setup-ruby@v1
244- with :
245- ruby-version : head
246- bundler-cache : true
247- - name : Run Ruby tests with valgrind
248- run : bundle exec rake test:valgrind
249-
250- gem-package :
251- runs-on : ubuntu-latest
252- steps :
253- - uses : actions/checkout@v5
254- - uses : ruby/setup-ruby@v1
255- with :
256- ruby-version : head
257- bundler-cache : true
258- - run : bundle config --local frozen false
259- - run : bundle exec rake build:dev
260- - uses : actions/upload-artifact@v5
261- with :
262- name : gem-package
263- path : pkg
264- retention-days : 1
265-
266- gem-install :
267- needs : ["gem-package"]
268- strategy :
269- fail-fast : false
270- matrix :
271- target :
272- - { ruby: "2.7", os: "ubuntu-latest", gemfile: "2.7" }
273- - { ruby: "3.0", os: "ubuntu-latest", gemfile: "3.0" }
274- - { ruby: "3.1", os: "ubuntu-latest", gemfile: "3.1" }
275- - { ruby: "3.2", os: "ubuntu-latest", gemfile: "3.2" }
276- - { ruby: "3.3", os: "ubuntu-latest", gemfile: "3.3" }
277- - { ruby: "3.4", os: "ubuntu-latest", gemfile: "3.4" }
278- - { ruby: "head", os: "ubuntu-latest", gemfile: "3.5" }
279- - { ruby: "jruby-10.0.0.0", os: "ubuntu-latest", gemfile: "jruby" } # https://github.com/jruby/jruby/issues/8923
280- - { ruby: "truffleruby", os: "ubuntu-latest", gemfile: "truffleruby" }
281-
282- - { ruby: "2.7", os: "macos-latest", gemfile: "2.7" }
283- - { ruby: "3.0", os: "macos-latest", gemfile: "3.0" }
284- - { ruby: "3.1", os: "macos-latest", gemfile: "3.1" }
285- - { ruby: "3.2", os: "macos-latest", gemfile: "3.2" }
286- - { ruby: "3.3", os: "macos-latest", gemfile: "3.3" }
287- - { ruby: "3.4", os: "macos-latest", gemfile: "3.4" }
288- - { ruby: "head", os: "macos-latest", gemfile: "3.5" }
289- - { ruby: "jruby-10.0.0.0", os: "macos-latest", gemfile: "jruby" } # https://github.com/jruby/jruby/issues/8923
290- - { ruby: "truffleruby", os: "macos-latest", gemfile: "truffleruby" }
291-
292- - { ruby: "2.7", os: "windows-latest", gemfile: "2.7" }
293- - { ruby: "3.0", os: "windows-latest", gemfile: "3.0" }
294- - { ruby: "3.1", os: "windows-latest", gemfile: "3.1" }
295- - { ruby: "3.2", os: "windows-latest", gemfile: "3.2" }
296- - { ruby: "3.3", os: "windows-latest", gemfile: "3.3" }
297- - { ruby: "3.4", os: "windows-latest", gemfile: "3.4" }
298- - { ruby: "head", os: "windows-latest", gemfile: "3.5" }
299- - { ruby: "jruby-10.0.0.0", os: "windows-latest", gemfile: "jruby" } # https://github.com/jruby/jruby/issues/8923
300- env :
301- BUNDLE_GEMFILE : gemfiles/${{ matrix.target.gemfile }}/Gemfile
302- runs-on : ${{ matrix.target.os }}
303- steps :
304- - uses : actions/checkout@v5
305- - uses : ruby/setup-ruby@v1
306- with :
307- ruby-version : ${{ matrix.target.ruby }}
308- - uses : actions/download-artifact@v6
309- with :
310- name : gem-package
311- path : pkg
312- - run : |
313- gem install --local pkg/prism-*.gem
314- gem list -d prism
315- shell: bash
316- - name : Run tests
317- run : |
318- bundle install
319- rm -rf lib ext # ensure we don't use the local files
320- rake test
321- shell : bash
322-
323- gcc-analyzer :
324- runs-on : ubuntu-latest
325- steps :
326- - uses : actions/checkout@v5
327- - name : Set up Ruby
328- uses : ruby/setup-ruby@v1
329- with :
330- ruby-version : head
331- bundler-cache : true
332- - name : Run build with gcc-analyzer enabled
333- run : |
334- CFLAGS='-fanalyzer' bundle exec rake compile
335-
336- clang-analyzer :
337- runs-on : ubuntu-latest
338- steps :
339- - uses : actions/checkout@v5
340- - name : Set up Ruby
341- uses : ruby/setup-ruby@v1
342- with :
343- ruby-version : head
344- bundler-cache : true
345- - name : Install clang-analyzer
346- run : sudo apt-get install -y clang-tools
347- - name : Run build with clang-analyzer
348- run : |
349- scan-build bundle exec rake compile 2>&1 | tee /tmp/scan_build_output.log
350- grep -q 'scan-build: No bugs found.' /tmp/scan_build_output.log
0 commit comments