From d2f351cb82a6abb62a19620f0801604848643129 Mon Sep 17 00:00:00 2001 From: Lorenz Leutgeb Date: Fri, 17 Dec 2021 20:14:43 +0100 Subject: [PATCH 1/2] gradle: Add reckon --- build.gradle.kts | 6 ++++++ gradle.properties | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index bd335656d..dcfe171ec 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,9 +2,15 @@ plugins { jacoco id("com.github.kt3k.coveralls") version "2.12.0" + id("org.ajoberstar.reckon") version "0.13.1" } tasks.wrapper { gradleVersion = "7.3.2" distributionType = Wrapper.DistributionType.ALL } + +reckon { + scopeFromProp() + stageFromProp("rc") +} diff --git a/gradle.properties b/gradle.properties index 79a8403fc..2d491ea8f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,2 @@ -version=0.7.0-SNAPSHOT group=at.ac.tuwien.kr.alpha org.gradle.warning.mode=all From ff5befad0366d76ea116b4523559682e64c402d5 Mon Sep 17 00:00:00 2001 From: Lorenz Leutgeb Date: Mon, 20 Dec 2021 07:55:35 +0100 Subject: [PATCH 2/2] cli: Add Native Image build --- .github/workflows/build.yml | 22 +++++++++++++++++++ alpha-cli-app/build.gradle.kts | 19 ++++++++++++++++ .../native-image/resource-config.json | 11 ++++++++++ 3 files changed, 52 insertions(+) create mode 100644 alpha-cli-app/src/main/resources/META-INF/native-image/resource-config.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1902bcbfe..0c086a6fc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,3 +58,25 @@ jobs: - uses: codecov/codecov-action@v1 if: matrix.os == env.MAIN_OS && matrix.java == env.MAIN_JAVA continue-on-error: true + native-image: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + fetch-depth: 0 + - name: Set up Graal + run: | + mkdir graalvm + wget -qO- 'https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/graalvm-ce-java17-linux-amd64-21.3.0.tar.gz' | tar xzf - --strip-components=1 -C graalvm + echo "${PWD}/graalvm/bin" >> $GITHUB_PATH + echo "JAVA_HOME=${PWD}/graalvm" + - run: sudo apt-get install -y build-essential libz-dev zlib1g-dev + - run: | + echo $LD_LIBRARY_PATH + sudo ldconfig + - run: gu install native-image + - uses: gradle/gradle-build-action@v2 + with: + gradle-version: '7.3' + arguments: build --stacktrace alpha-cli-app:nativeImage diff --git a/alpha-cli-app/build.gradle.kts b/alpha-cli-app/build.gradle.kts index a62227309..5fb1950d3 100644 --- a/alpha-cli-app/build.gradle.kts +++ b/alpha-cli-app/build.gradle.kts @@ -1,5 +1,7 @@ plugins { id("alpha.java-application-conventions") + id("com.github.johnrengelman.shadow") version "7.1.1" + id("org.mikeneck.graalvm-native-image") version "1.4.1" } dependencies { @@ -71,3 +73,20 @@ tasks.create("bundledJar") { tasks.test { useJUnitPlatform() } + +tasks.shadowJar { + archiveClassifier.set("shadow") +} + +tasks.nativeImage { + mainClass = main + //mainClass.set(main) + executableName = "alpha" + arguments( + "--no-fallback", + "-H:Log=registerResource", + "-H:+ReportExceptionStackTraces", + //"-H:ResourceConfigurationFiles=src/main/resources/native-image/resource-config.json", + "--report-unsupported-elements-at-runtime" + ) +} diff --git a/alpha-cli-app/src/main/resources/META-INF/native-image/resource-config.json b/alpha-cli-app/src/main/resources/META-INF/native-image/resource-config.json new file mode 100644 index 000000000..78ea7d079 --- /dev/null +++ b/alpha-cli-app/src/main/resources/META-INF/native-image/resource-config.json @@ -0,0 +1,11 @@ +{ + "resources": { + "includes": [ + { + "pattern": "alpha-core:/stringtemplates/aggregate-encodings.stg", + "pattern": ".*" + } + ] + }, + "bundles": [] +}