diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80abde9..96a9987 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,27 +17,20 @@ jobs: runs-on: 'macos-latest' steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Gradle Wrapper Validation - uses: gradle/wrapper-validation-action@v1 - - - name: Generate cache key - run: .github/scripts/checksum.sh checksum.txt - - - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('checksum.txt') }} - restore-keys: | - ${{ runner.os }}-gradle + uses: gradle/actions/wrapper-validation@v4 - name: Install JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 11 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Test Common JVM run: ./gradlew jvmTest koverMergedReport --stacktrace @@ -47,7 +40,7 @@ jobs: - name: (Fail-only) Upload the build report if: failure() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: error-report path: build-reports.zip @@ -58,12 +51,6 @@ jobs: strategy: matrix: include: - - snapshot-target: publishIosArm64PublicationToMavenCentralRepository - os: macos-latest - - snapshot-target: publishJvmPublicationToMavenCentralRepository - os: ubuntu-latest - - snapshot-target: publishLinuxX64PublicationToMavenCentralRepository - os: ubuntu-latest - release-target: publishIosArm64PublicationToMavenCentral os: macos-latest - release-target: publishJvmPublicationToMavenCentral @@ -73,37 +60,25 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v3 - - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v1 - - uses: actions/cache@v3 - with: - path: | - ~/.konan - key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} + uses: actions/checkout@v4 + + - name: Gradle Wrapper Validation + uses: gradle/actions/wrapper-validation@v4 - name: Install JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 11 - - name: Upload Snapshot - run: ./gradlew ${{ matrix.snapshot-target }} + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Publish release + run: ./gradlew ${{ matrix.release-target }} + if: success() env: ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} - - - name: Retrieve Version - run: echo "VERSION_NAME=$(./gradlew -q printVersionName)" >> $GITHUB_ENV - - - name: Publish release (main only) - run: | - ./gradlew ${{ matrix.release-target }} - ./gradlew closeAndReleaseRepository - if: success() && !endsWith(env.VERSION_NAME, '-SNAPSHOT') - env: - ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} - ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} diff --git a/build.gradle.kts b/build.gradle.kts index 973d979..1060b4e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,6 +3,8 @@ import com.vanniktech.maven.publish.SonatypeHost import kotlinx.kover.api.CoverageEngine.JACOCO import kotlinx.kover.tasks.KoverMergedHtmlReportTask import kotlinx.kover.tasks.KoverMergedXmlReportTask +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { alias(libs.plugins.kotlin.multiplatform).apply(false) @@ -33,7 +35,7 @@ allprojects { plugins.withId("com.vanniktech.maven.publish.base") { configure { - publishToMavenCentral(SonatypeHost.S01) + publishToMavenCentral(SonatypeHost.S01, automaticRelease = true) signAllPublications() pom { description.set("A simple, lightweight, multiplatform image diffing library.") @@ -68,6 +70,10 @@ subprojects { targetCompatibility = JavaVersion.VERSION_1_8.toString() } + tasks.withType().configureEach { + compilerOptions.jvmTarget = JvmTarget.JVM_1_8 + } + repositories { mavenCentral() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a1c0cf9..e68170f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "1.6.10" +kotlin = "1.9.20" kover = "0.5.0" [libraries] @@ -11,5 +11,5 @@ okio = { module = "com.squareup.okio:okio", version = "3.0.0" } [plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } -mavenPublish = { id = "com.vanniktech.maven.publish.base", version = "0.18.0" } +mavenPublish = { id = "com.vanniktech.maven.publish.base", version = "0.29.0" } dokka = { id = "org.jetbrains.dokka", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180..41d9927 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 41dfb87..d642e7f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists