Skip to content

Commit 901cdf9

Browse files
committed
Run dist verification with jruby-dist
In docker-library/official-images#20939 we discovered that the jruby-dist artifacts were not including RubyGems extension stubs needed for libraries like syslog to load. This change modifies our verification process to attempt to run from the dist archive and to load problematic standard libraries to hopefully catch issues like this in the future.
1 parent 9af05b9 commit 901cdf9

2 files changed

Lines changed: 83 additions & 40 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Dist Verification CI
2+
3+
on: [push, pull_request]
4+
5+
env:
6+
JAVA_OPTS: '-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xms60M -Xmx1G -XX:InitialCodeCacheSize=40M -XX:ReservedCodeCacheSize=120M'
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
build-dist:
13+
14+
strategy:
15+
matrix:
16+
java-version: ['21']
17+
fail-fast: false
18+
19+
runs-on: ubuntu-latest
20+
21+
name: Build JRuby dist archive
22+
23+
steps:
24+
- name: checkout
25+
uses: actions/checkout@v3
26+
- name: set up java 21
27+
uses: actions/setup-java@v3
28+
with:
29+
distribution: 'zulu'
30+
java-version: 21
31+
cache: 'maven'
32+
- name: build dist archive
33+
run: |
34+
mvn -ntp clean package -Pdist
35+
mv maven/jruby-dist/target/jruby-dist*-bin.tar.gz jruby-dist-bin.tar.gz
36+
- name: cache dist
37+
uses: actions/upload-artifact@v4
38+
with:
39+
name: jruby-dist
40+
path: jruby-dist-bin.tar.gz
41+
retention-days: 1
42+
43+
rails-verification:
44+
45+
needs: build-dist
46+
47+
strategy:
48+
matrix:
49+
java-version: ['21', '25']
50+
runs-on: [windows-latest, macos-latest, ubuntu-latest]
51+
fail-fast: false
52+
53+
runs-on: ${{ matrix.runs-on }}
54+
55+
name: dist verification on ${{ matrix.runs-on }} (Java ${{ matrix.java-version }})
56+
57+
steps:
58+
- name: checkout
59+
uses: actions/checkout@v3
60+
with:
61+
path: jruby-src
62+
- name: set up java ${{ matrix.java-version }}
63+
uses: actions/setup-java@v3
64+
with:
65+
distribution: 'zulu'
66+
java-version: ${{ matrix.java-version }}
67+
- name: download cached dist
68+
uses: actions/download-artifact@v5
69+
with:
70+
name: jruby-dist
71+
- name: unpack dist
72+
run: tar xzf jruby-dist-bin.tar.gz --strip-components=1
73+
- name: dist verification (Windows)
74+
if: matrix.runs-on == 'windows-latest'
75+
run: echo "${{ github.workspace }}\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
76+
- name: set up dist path (Unix)
77+
if: matrix.runs-on != 'windows-latest'
78+
run: echo "$(pwd)/bin" >> $GITHUB_PATH
79+
- name: rails verification
80+
run: jruby jruby-src/tool/rails_runner
81+
- name: syslog verification (Unix)
82+
if: matrix.runs-on != 'windows-latest'
83+
run: jruby -rsyslog -e 1

.github/workflows/windows-verification-ci.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)