Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Toolchain for Test task #3064

Merged
merged 6 commits into from Jul 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
47 changes: 34 additions & 13 deletions .github/workflows/ci.yml
Expand Up @@ -46,11 +46,11 @@ jobs:
with:
fetch-depth: '0' # https://github.com/shipkit/shipkit-changelog#fetch-depth-on-ci

- name: 2. Set up Java ${{ matrix.java }}
- name: 2. Set up Java for running Gradle build
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: ${{ matrix.java }}
java-version: 17
TimvdLippe marked this conversation as resolved.
Show resolved Hide resolved

- name: 3. Validate Gradle wrapper
if: matrix.java == 11 && matrix.entry.mock-maker == 'mock-maker-default' # SINGLE-MATRIX-JOB
Expand All @@ -62,16 +62,31 @@ jobs:

- name: 5. Spotless check (single job only). Run './gradlew spotlessApply' locally if this job fails.
if: matrix.java == 11 && matrix.entry.mock-maker == 'mock-maker-default' # SINGLE-MATRIX-JOB
run: ./gradlew spotlessCheck
run: >
./gradlew
spotlessCheck
--stacktrace
--scan
- name: 6. Build on Java ${{ matrix.java }} with ${{ matrix.entry.mock-maker }} and ${{ matrix.entry.member-accessor }}
run: ./gradlew build idea --scan
run: >
./gradlew
-Pmockito.test.java=${{ matrix.java }}
build
idea
--stacktrace
--scan
env:
MOCK_MAKER: ${{ matrix.entry.mock-maker }}
MEMBER_ACCESSOR: ${{ matrix.entry.member-accessor }}

- name: 7. Generate coverage report
run: ./gradlew coverageReport --stacktrace --scan
run: >
./gradlew
-Pmockito.test.java=${{ matrix.java }}
coverageReport
--stacktrace
--scan
- name: 8. Upload coverage report
uses: codecov/codecov-action@v3
Expand Down Expand Up @@ -100,11 +115,11 @@ jobs:
with:
fetch-depth: '0' # https://github.com/shipkit/shipkit-changelog#fetch-depth-on-ci

- name: 2. Set up Java 11
- name: 2. Set up Java for running Gradle build
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
java-version: 17

- name: 3. Run Android tests on Android API level ${{ matrix.android-api }}
uses: reactivecircus/android-emulator-runner@v2
Expand Down Expand Up @@ -183,19 +198,25 @@ jobs:

steps:

- name: Check out code
- name: 1. Check out code
uses: actions/checkout@v3 # https://github.com/actions/checkout
with:
fetch-depth: '0' # https://github.com/shipkit/shipkit-changelog#fetch-depth-on-ci

- name: Set up Java 11
- name: 2. Set up Java for running Gradle build
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11

- name: Build and release
run: ./gradlew githubRelease publishToSonatype closeAndReleaseStagingRepository releaseSummary
java-version: 17

- name: 3. Build and release
run: >
./gradlew
githubRelease
publishToSonatype
closeAndReleaseStagingRepository
releaseSummary
--stacktrace
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
NEXUS_TOKEN_USER: ${{secrets.NEXUS_TOKEN_USER}}
Expand Down
6 changes: 6 additions & 0 deletions gradle.properties
Expand Up @@ -16,3 +16,9 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 \
android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official

# Version of JDK to use for running tests.
# Possible values:
# - auto -> use Java running Gradle, best for local dev.
# - A Java major version number, like 11 or 17.
mockito.test.java=auto
TimvdLippe marked this conversation as resolved.
Show resolved Hide resolved
1 change: 1 addition & 0 deletions gradle/java-library.gradle
@@ -1,5 +1,6 @@
apply plugin: "java"
apply plugin: "java-library"
apply from: "$rootDir/gradle/test-launcher.gradle"

if (!base.archivesName.get().startsWith("mockito-")) {
base.archivesName = "mockito-" + project.name
Expand Down
1 change: 1 addition & 0 deletions gradle/java-test.gradle
@@ -1,4 +1,5 @@
apply plugin: "java"
apply from: "$rootDir/gradle/test-launcher.gradle"

// Test modules don't need to be published, so there's no need to build javadoc for them.
// Most test modules don't have src/main, but this is here in shared configuration just in case.
Expand Down
13 changes: 13 additions & 0 deletions gradle/test-launcher.gradle
@@ -0,0 +1,13 @@
tasks.withType(Test) {
TimvdLippe marked this conversation as resolved.
Show resolved Hide resolved
javaLauncher = javaToolchains.launcherFor {
languageVersion = providers
.gradleProperty("mockito.test.java")
.map {
if (it == "auto") {
JavaLanguageVersion.of(JavaVersion.current().majorVersion)
TimvdLippe marked this conversation as resolved.
Show resolved Hide resolved
} else {
JavaLanguageVersion.of(it)
}
}
}
}
1 change: 1 addition & 0 deletions settings.gradle.kts
@@ -1,5 +1,6 @@
plugins {
id("com.gradle.enterprise") version "3.14"
id("org.gradle.toolchains.foojay-resolver-convention") version "0.6.0"
TimvdLippe marked this conversation as resolved.
Show resolved Hide resolved
}

include(
Expand Down
5 changes: 3 additions & 2 deletions subprojects/androidTest/androidTest.gradle
Expand Up @@ -5,6 +5,9 @@ plugins {
id 'kotlin-android'
}

apply from: "$rootDir/gradle/dependencies.gradle"
apply from: "$rootDir/gradle/test-launcher.gradle"

android {
namespace = "org.mockitousage.androidtest"
compileSdk = 33
Expand Down Expand Up @@ -62,8 +65,6 @@ androidComponents {
}
}

apply from: "$rootDir/gradle/dependencies.gradle"

dependencies {
implementation libraries.kotlin.stdlib

Expand Down