Skip to content

Commit b983875

Browse files
fvarruiclaude
andcommitted
Test additionalJlinkArgs across JDK versions (temporary, PR 491)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 74b0dd3 commit b983875

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

‎.github/workflows/jlink-args.yml‎

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: jlink args (PR 491 test)
2+
3+
on:
4+
push:
5+
branches: [ 'pr/**' ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
jlink:
10+
name: java ${{ matrix.java }} / ${{ matrix.args }}
11+
runs-on: ubuntu-latest
12+
timeout-minutes: 20
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
java: [ 11, 17, 21, 25 ]
17+
args: [ none, legacy, zip ]
18+
env:
19+
M2_REPO: ${{ github.workspace }}/build/m2-smoke
20+
JRE: samples/hello-world/target/HelloWorld/jre
21+
22+
steps:
23+
- uses: actions/checkout@v5
24+
25+
- uses: actions/setup-java@v5
26+
with:
27+
distribution: temurin
28+
java-version: 17
29+
cache: gradle
30+
31+
- name: Build and install plugin to Maven local
32+
run: ./gradlew publishToMavenLocal --no-daemon "-Dmaven.repo.local=$M2_REPO"
33+
34+
- name: Get plugin version
35+
id: plugin
36+
run: echo "version=$(./gradlew properties -q --no-daemon | awk '/^version:/ {print $2}' | tr -d '\r')" >> "$GITHUB_OUTPUT"
37+
38+
- uses: actions/setup-java@v5
39+
with:
40+
distribution: temurin
41+
java-version: ${{ matrix.java }}
42+
43+
- name: Write test POM
44+
working-directory: samples/hello-world
45+
run: |
46+
case "${{ matrix.args }}" in
47+
none) EXTRA="" ;;
48+
legacy) EXTRA="<additionalModules><additionalModule>jdk.localedata</additionalModule></additionalModules><additionalJlinkArgs><additionalJlinkArg>--include-locales=en,es</additionalJlinkArg><additionalJlinkArg>--compress=0</additionalJlinkArg></additionalJlinkArgs>" ;;
49+
zip) EXTRA="<additionalModules><additionalModule>jdk.localedata</additionalModule></additionalModules><additionalJlinkArgs><additionalJlinkArg>--include-locales=en,es</additionalJlinkArg><additionalJlinkArg>--compress=zip-0</additionalJlinkArg></additionalJlinkArgs>" ;;
50+
esac
51+
sed -e "s#<generateInstaller>true</generateInstaller>#<generateInstaller>false</generateInstaller>$EXTRA#" pom.xml > pom-jlink.xml
52+
grep -n "generateInstaller" pom-jlink.xml
53+
54+
- name: Package sample app
55+
id: package
56+
continue-on-error: true
57+
working-directory: samples/hello-world
58+
run: |
59+
java -version 2>&1
60+
mvn -B -f pom-jlink.xml "-Dmaven.repo.local=$M2_REPO" package -Djavapackager.version=${{ steps.plugin.outputs.version }} 2>&1 | tee build.log
61+
exit "${PIPESTATUS[0]}"
62+
63+
- name: Report
64+
if: always()
65+
run: |
66+
echo "package: ${{ steps.package.outcome }}"
67+
grep -n -i "jlink\|compress\|locale\|Error" samples/hello-world/build.log | head -40 || true
68+
if [ -f "$JRE/lib/modules" ]; then
69+
echo "lib/modules: $(du -k "$JRE/lib/modules" | cut -f1) KB, jre: $(du -sk "$JRE" | cut -f1) KB"
70+
"$JRE/bin/java" --list-modules
71+
LIST=$(jimage list "$JRE/lib/modules")
72+
for l in es de fr ja; do echo "FormatData_$l: $(echo "$LIST" | grep -c "FormatData_${l}\.class")"; done
73+
"$JRE/bin/java" -cp samples/hello-world/target/classes io.github.javapackager.samples.HelloWorld | head -3 || true
74+
fi
75+
{
76+
echo "### java ${{ matrix.java }} / ${{ matrix.args }}: ${{ steps.package.outcome }}"
77+
[ -f "$JRE/lib/modules" ] && echo "lib/modules $(du -k "$JRE/lib/modules" | cut -f1) KB"
78+
grep -i "warning.*compress\|Error:" samples/hello-world/build.log | head -3 || true
79+
} >> "$GITHUB_STEP_SUMMARY"

0 commit comments

Comments
 (0)