create custom runtime image

This commit is contained in:
Sebastian Stenzel
2021-07-19 23:10:28 +02:00
parent 8394aa12b5
commit c79c7459c6

View File

@@ -3,6 +3,14 @@ name: Build
on:
[push]
env:
JAVA_VERSION: 16
ADDITIONAL_MODULES: jdk.crypto.ec,jdk.accessibility
defaults:
run:
shell: bash
jobs:
test:
name: Build and Test
@@ -12,7 +20,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 16
java-version: ${{ env.JAVA_VERSION }}
- uses: actions/cache@v2
with:
path: ~/.m2/repository
@@ -36,7 +44,7 @@ jobs:
#
buildkit:
name: Build buildkit-${{ matrix.profile }}.zip
name: Build buildkit-${{ matrix.profile }}
needs: test
runs-on: ${{ matrix.os }}
strategy:
@@ -56,7 +64,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 16
java-version: ${{ env.JAVA_VERSION }}
- uses: actions/cache@v2
with:
path: ~/.m2/repository
@@ -65,13 +73,11 @@ jobs:
${{ runner.os }}-maven-
- name: Copy .jar files
run: mvn -B clean package -DskipTests -P${{ matrix.profile }}
shell: bash
- name: Archive buildkit-${{ matrix.profile }}.tar.gz
run: |
cp LICENSE.txt target
cp dist/${{ matrix.launcher }} target
cp target/cryptomator-*.jar target/mods
shell: bash
- name: Upload buildkit-${{ matrix.profile }}
uses: actions/upload-artifact@v2
with:
@@ -83,6 +89,64 @@ jobs:
target/${{ matrix.launcher }}
if-no-files-found: error
#
# jlink
#
jlink:
name: Create runtime-${{ matrix.profile }}
needs: buildkit
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
include:
- os: ubuntu-latest
profile: linux
- os: windows-latest
profile: win
- os: macOS-latest
profile: mac
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ env.JAVA_VERSION }}
- name: Download buildkit-linux
uses: actions/download-artifact@v2
with:
name: buildkit-${{ matrix.profile }}
path: buildkit
- name: Run jdeps
run: >
jmods=`
${JAVA_HOME}/bin/jdeps --module-path buildkit/mods -R --multi-release ${{ env.JAVA_VERSION }} -s buildkit/mods/cryptomator-*.jar
| awk -F ' -> ' '{print $2}'
| grep -E '^java\.|^jdk\.'
| sort
| uniq
| tr '\n' ','
`
&& echo "REQUIRED_MODULES=${jmods}" >> $GITHUB_ENV
working-directory: buildkit
- name: Create Runtime Image
run: >
${JAVA_HOME}/bin/jlink
--verbose
--output runtime
--module-path "${JAVA_HOME/}/jmods"
--add-modules ${{ env.REQUIRED_MODULES }}${{ env.ADDITIONAL_MODULES }}
--no-header-files
--no-man-pages
--strip-debug
--compress=1
- name: Upload runtime-${{ matrix.profile }}
uses: actions/upload-artifact@v2
with:
name: runtime-${{ matrix.profile }}
path: runtime
if-no-files-found: error
# release:
# name: Draft a Release on GitHub Releases
# runs-on: ubuntu-latest