From d98b143dac5b8755b0f9202e873ed4bf423e61d8 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Mon, 3 Jun 2024 22:27:27 -0400 Subject: [PATCH] Update CI/build infra (#1852) * Update CI/build infra - Gradle caching on CI - JDK 21 - Move gradle wrapper validation to a separate workflow that only runs on changes to those files * Update .github/workflows/gradle-wrapper.yml Co-authored-by: Jake Wharton --------- Co-authored-by: Jake Wharton --- .github/workflows/build.yml | 8 ++++---- .github/workflows/gradle-wrapper.yml | 15 +++++++++++++++ build.gradle.kts | 2 +- gradle/libs.versions.toml | 1 + moshi/build.gradle.kts | 4 ++-- 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/gradle-wrapper.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32514dd..04d7703 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,16 +16,16 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@v3 - - name: Configure JDK uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: '20' + java-version: '21' cache: 'gradle' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + - name: Test run: ./gradlew build check --stacktrace -PkotlinTestMode=${{ matrix.kotlin-test-mode }} diff --git a/.github/workflows/gradle-wrapper.yml b/.github/workflows/gradle-wrapper.yml new file mode 100644 index 0000000..443b961 --- /dev/null +++ b/.github/workflows/gradle-wrapper.yml @@ -0,0 +1,15 @@ +name: gradle-wrapper + +on: + pull_request: + paths: + - 'gradlew' + - 'gradlew.bat' + - 'gradle/wrapper/**' + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: gradle/actions/wrapper-validation@v3 \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index e03b8b8..6cfb5da 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -77,7 +77,7 @@ subprojects { pluginManager.withPlugin("java") { configure { toolchain { - languageVersion.set(JavaLanguageVersion.of(20)) + languageVersion.set(libs.versions.jdk.map(JavaLanguageVersion::of)) } } if (project.name != "records-tests") { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ae74fcb..0742d47 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,6 @@ [versions] autoService = "1.1.1" +jdk = "21" jvmTarget = "1.8" kotlin = "2.0.0" # No 0.5.0 full release yet due to KSP's 1.0.21 release being busted for CLI/programmatic use diff --git a/moshi/build.gradle.kts b/moshi/build.gradle.kts index 0fcfa0d..011e3b5 100644 --- a/moshi/build.gradle.kts +++ b/moshi/build.gradle.kts @@ -19,11 +19,11 @@ val java16: SourceSet by sourceSets.creating { } } -// We use JDK 17 for latest but target 16 for maximum compatibility +// We use newer JDKs but target 16 for maximum compatibility val service = project.extensions.getByType() val customLauncher = service.launcherFor { - languageVersion.set(JavaLanguageVersion.of(17)) + languageVersion.set(libs.versions.jdk.map(JavaLanguageVersion::of)) } tasks.named("compileJava16Java") {