From ca880235600a1f80885fec2eeaae334b2d3fdb0f Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 28 Sep 2022 19:15:59 +0200 Subject: [PATCH] GitHub Actions: build using Java 19 (use toolchain because Gradle 7.5.1 does not support running on Java 19) --- .github/workflows/ci.yml | 6 ++++- build.gradle.kts | 3 +++ .../main/kotlin/flatlaf-toolchain.gradle.kts | 26 +++++++++++++++++++ flatlaf-core/build.gradle.kts | 1 + flatlaf-demo/build.gradle.kts | 1 + flatlaf-extras/build.gradle.kts | 1 + flatlaf-intellij-themes/build.gradle.kts | 1 + flatlaf-jide-oss/build.gradle.kts | 1 + .../flatlaf-natives-jna/build.gradle.kts | 1 + flatlaf-swingx/build.gradle.kts | 1 + flatlaf-testing/build.gradle.kts | 1 + flatlaf-theme-editor/build.gradle.kts | 1 + 12 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 buildSrc/src/main/kotlin/flatlaf-toolchain.gradle.kts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16bf5712..1369436f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,6 +26,10 @@ jobs: - 8 - 11 # LTS - 17 # LTS + toolchain: [""] + include: + - java: 17 + toolchain: 19 # latest steps: - uses: actions/checkout@v3 @@ -41,7 +45,7 @@ jobs: cache: gradle - name: Build with Gradle - run: ./gradlew build + run: ./gradlew build -Dtoolchain=${{ matrix.toolchain }} - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/build.gradle.kts b/build.gradle.kts index 2536e545..6578cf27 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,6 +37,9 @@ println( "---------------------------------------------------------------------- println( "FlatLaf Version: ${version}" ) println( "Gradle ${gradle.gradleVersion} at ${gradle.gradleHomeDir}" ) println( "Java ${System.getProperty( "java.version" )}" ) +val toolchainJavaVersion = System.getProperty( "toolchain" ) +if( !toolchainJavaVersion.isNullOrEmpty() ) + println( "Java toolchain ${toolchainJavaVersion}" ) println() diff --git a/buildSrc/src/main/kotlin/flatlaf-toolchain.gradle.kts b/buildSrc/src/main/kotlin/flatlaf-toolchain.gradle.kts new file mode 100644 index 00000000..b9ae0f14 --- /dev/null +++ b/buildSrc/src/main/kotlin/flatlaf-toolchain.gradle.kts @@ -0,0 +1,26 @@ +/* + * Copyright 2022 FormDev Software GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + java +} + +val toolchainJavaVersion = System.getProperty( "toolchain" ) +if( !toolchainJavaVersion.isNullOrEmpty() ) { + java.toolchain { + languageVersion.set( JavaLanguageVersion.of( toolchainJavaVersion ) ) + } +} diff --git a/flatlaf-core/build.gradle.kts b/flatlaf-core/build.gradle.kts index 2d58b047..95e90deb 100644 --- a/flatlaf-core/build.gradle.kts +++ b/flatlaf-core/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` `flatlaf-module-info` `flatlaf-java9` `flatlaf-publish` diff --git a/flatlaf-demo/build.gradle.kts b/flatlaf-demo/build.gradle.kts index 5d9c0d65..276e3a25 100644 --- a/flatlaf-demo/build.gradle.kts +++ b/flatlaf-demo/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` } dependencies { diff --git a/flatlaf-extras/build.gradle.kts b/flatlaf-extras/build.gradle.kts index c494340e..c0b93dc2 100644 --- a/flatlaf-extras/build.gradle.kts +++ b/flatlaf-extras/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` `flatlaf-module-info` `flatlaf-publish` } diff --git a/flatlaf-intellij-themes/build.gradle.kts b/flatlaf-intellij-themes/build.gradle.kts index 6f3b0786..52835d5f 100644 --- a/flatlaf-intellij-themes/build.gradle.kts +++ b/flatlaf-intellij-themes/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` `flatlaf-module-info` `flatlaf-publish` } diff --git a/flatlaf-jide-oss/build.gradle.kts b/flatlaf-jide-oss/build.gradle.kts index 397d8c7a..96091eaa 100644 --- a/flatlaf-jide-oss/build.gradle.kts +++ b/flatlaf-jide-oss/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` `flatlaf-publish` } diff --git a/flatlaf-natives/flatlaf-natives-jna/build.gradle.kts b/flatlaf-natives/flatlaf-natives-jna/build.gradle.kts index 03fcc59a..a90b0f9a 100644 --- a/flatlaf-natives/flatlaf-natives-jna/build.gradle.kts +++ b/flatlaf-natives/flatlaf-natives-jna/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` } dependencies { diff --git a/flatlaf-swingx/build.gradle.kts b/flatlaf-swingx/build.gradle.kts index 1df38347..68019cb5 100644 --- a/flatlaf-swingx/build.gradle.kts +++ b/flatlaf-swingx/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` `flatlaf-module-info` `flatlaf-publish` } diff --git a/flatlaf-testing/build.gradle.kts b/flatlaf-testing/build.gradle.kts index 53b51367..f72ccbb9 100644 --- a/flatlaf-testing/build.gradle.kts +++ b/flatlaf-testing/build.gradle.kts @@ -18,6 +18,7 @@ import java.util.Properties plugins { `java-library` + `flatlaf-toolchain` } dependencies { diff --git a/flatlaf-theme-editor/build.gradle.kts b/flatlaf-theme-editor/build.gradle.kts index c469e48e..f44136d0 100644 --- a/flatlaf-theme-editor/build.gradle.kts +++ b/flatlaf-theme-editor/build.gradle.kts @@ -16,6 +16,7 @@ plugins { `java-library` + `flatlaf-toolchain` } dependencies {