From 2fce7bc3619684b76b3df060fedf4b26308aa1c1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 31 May 2021 02:39:17 -0700 Subject: [PATCH] Added GitHub workflow martix for Java 1.8, 11 & 15. --- .github/workflows/gradle.yml | 22 ++++++++++++++++------ build.gradle.kts | 34 +++++++++++++++------------------- examples/build.gradle.kts | 6 +++--- 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index b9129c7..bacbc0c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -5,17 +5,24 @@ on: [push, pull_request, workflow_dispatch] jobs: build: runs-on: ubuntu-latest + env: + GRADLE_OPTS: "-Dorg.gradle.jvmargs=-XX:MaxMetaspaceSize=512m" + SONAR_JDK: "11" + strategy: + matrix: + java-version: [ 1.8, 11, 15 ] steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - - name: Set up JDK 11 + - name: Set up JDK ${{ matrix.java-version }} uses: actions/setup-java@v1 with: - java-version: 11 + java-version: ${{ matrix.java-version }} - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Cache SonarCloud packages + if: matrix.java-version == env.SONAR_JDK uses: actions/cache@v1 with: path: ~/.sonar/cache @@ -27,16 +34,19 @@ jobs: path: | ~/.gradle/caches ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + key: ${{ runner.os }}-gradle-${{ matrix.java-version }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | - ${{ runner.os }}-gradle- + ${{ runner.os }}-gradle-${{ matrix.java-version }}- - name: Test with Gradle env: - CI_NAME: "GitHub CI" BITLY_ACCESS_TOKEN: ${{ secrets.BITLY_ACCESS_TOKEN }} + run: ./gradlew build check --stacktrace + - name: SonarCloud + if: success() && matrix.java-version == env.SONAR_JDK + env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: ./gradlew check sonarqube + run: ./gradlew sonarqube - name: Cleanup Gradle Cache run: | rm -f ~/.gradle/caches/modules-2/modules-2.lock diff --git a/build.gradle.kts b/build.gradle.kts index e380338..205de5f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,18 +4,18 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { - jacoco - java - `java-library` - `maven-publish` - signing - id("com.github.ben-manes.versions") version "0.38.0" + id("com.github.ben-manes.versions") version "0.39.0" id("io.gitlab.arturbosch.detekt") version "1.17.1" + id("jacoco") + id("java") + id("java-library") + id("maven-publish") id("net.thauvin.erik.gradle.semver") version "1.0.4" id("org.jetbrains.dokka") version "1.4.32" - id("org.jetbrains.kotlin.jvm") version "1.5.0" - id("org.jetbrains.kotlin.kapt") version "1.5.0" id("org.sonarqube") version "3.2.0" + id("signing") + kotlin("jvm") version "1.5.10" + kotlin("kapt") version "1.5.10" } group = "net.thauvin.erik" @@ -30,28 +30,24 @@ var semverProcessor = "net.thauvin.erik:semver:1.2.0" val publicationName = "mavenJava" -object VersionInfo { - const val okhttp = "4.9.1" +object Versions { + const val OKHTTP = "4.9.1" } -val versions: VersionInfo by extra { VersionInfo } - repositories { mavenCentral() maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") } } dependencies { - implementation(platform("org.jetbrains.kotlin:kotlin-bom")) + implementation(platform(kotlin("bom"))) - implementation("com.squareup.okhttp3:okhttp:${versions.okhttp}") - implementation("com.squareup.okhttp3:logging-interceptor:${versions.okhttp}") + implementation("com.squareup.okhttp3:okhttp:${Versions.OKHTTP}") + implementation("com.squareup.okhttp3:logging-interceptor:${Versions.OKHTTP}") implementation("org.json:json:20210307") - // Use the Kotlin test library. - testImplementation("org.jetbrains.kotlin:kotlin-test") - // Use the Kotlin JUnit integration. - testImplementation("org.jetbrains.kotlin:kotlin-test-junit") + testImplementation(kotlin("test")) + testImplementation(kotlin("test-junit")) } kapt { diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts index 65e25ae..554f747 100644 --- a/examples/build.gradle.kts +++ b/examples/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("org.jetbrains.kotlin.jvm") version "1.5.0" - id("com.github.ben-manes.versions") version "0.38.0" - application + id("application") + id("com.github.ben-manes.versions") version "0.39.0" + kotlin("jvm") version "1.5.10" } // ./gradlew run --args='https://erik.thauvin.net/ https://bit.ly/2PsNMAA'