Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
55f585d
Refactor build system for instrumentation, use version catalog etc
mannodermaus Dec 20, 2025
0e0dc13
Add variants (JU5 & 6) to instrumentation modules
mannodermaus Dec 20, 2025
4d57be0
Implement JU5&6 backbones for instrumentation modules
mannodermaus Dec 20, 2025
f812302
Adjust plugin and re-enable publishing
mannodermaus Dec 21, 2025
33b32a6
Hook up readme generation to version catalog
mannodermaus Dec 21, 2025
c8e2fe1
Make plugin tests run with JU5&6
mannodermaus Dec 21, 2025
1a31062
New logo
mannodermaus Dec 22, 2025
b204394
Remove Groovy blocks from readme
mannodermaus Dec 22, 2025
f3659de
Try a different logo
mannodermaus Dec 23, 2025
0641478
Adjust instrumentation for distinct minSdks per JUnit version
mannodermaus Dec 23, 2025
3eb3565
Adjust instrumentation
mannodermaus Dec 23, 2025
8696a4e
CI script updates
mannodermaus Dec 23, 2025
3ab401c
Set up junit-dependent version in the plugin
mannodermaus Dec 23, 2025
e93a52b
Try CI
mannodermaus Dec 23, 2025
b3dcba9
Update tests
mannodermaus Dec 29, 2025
9151849
Address more deprecation warnings
mannodermaus Dec 29, 2025
0dade69
Forgot to assemble core:androidTest APKs
mannodermaus Dec 29, 2025
a238871
Publication shenanigans for multi-variant instrumentation libs
mannodermaus Dec 29, 2025
b623e98
Avoid error when a client doesn't include junit-jupiter-params on the…
mannodermaus Dec 30, 2025
dfe8788
Revert plugin ID change
mannodermaus Dec 30, 2025
0738087
Unify publish statement in CI config and brush up deploy script
mannodermaus Dec 30, 2025
a2cc035
Add Affinity file for new logo
mannodermaus Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 22 additions & 17 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ defaults: &defaults
working_directory: ~/root/project
resource_class: large
docker:
- image: cimg/android:2023.04.1
- image: cimg/android:2025.12.1
environment:
GRADLE_OPTS: -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.daemon=false -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false

cache_key: &cache_key
key: jars-{{ checksum "build-logic/build.gradle.kts" }}-{{ checksum "plugin/build.gradle.kts" }}-{{ checksum "plugin/android-junit5/build.gradle.kts" }}-{{ checksum "plugin/gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "instrumentation/build.gradle.kts" }}-{{ checksum "instrumentation/core/build.gradle.kts" }}-{{ checksum "instrumentation/compose/build.gradle.kts" }}-{{ checksum "instrumentation/extensions/build.gradle.kts" }}-{{ checksum "instrumentation/runner/build.gradle.kts" }}-{{ checksum "instrumentation/sample/build.gradle.kts" }}-{{ checksum "instrumentation/gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "build-logic/src/main/kotlin/Environment.kt" }}-{{ checksum "build-logic/src/main/kotlin/Dependencies.kt" }}
key: jars-{{ checksum "build-logic/build.gradle.kts" }}-{{ checksum "plugin/build.gradle.kts" }}-{{ checksum "plugin/android-junit5/build.gradle.kts" }}-{{ checksum "plugin/gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "instrumentation/build.gradle.kts" }}-{{ checksum "instrumentation/core/build.gradle.kts" }}-{{ checksum "instrumentation/compose/build.gradle.kts" }}-{{ checksum "instrumentation/extensions/build.gradle.kts" }}-{{ checksum "instrumentation/runner/build.gradle.kts" }}-{{ checksum "instrumentation/sample/build.gradle.kts" }}-{{ checksum "instrumentation/gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "build-logic/src/main/kotlin/Environment.kt" }}-{{ checksum "build-logic/gradle/libs.versions.toml" }}

commands:
construct_signing_key:
Expand All @@ -35,17 +35,10 @@ jobs:
command: cd instrumentation && ./gradlew androidDependencies
- run:
name: (Instrumentation) Build
command: |
cd instrumentation
./gradlew assembleRelease :core:assembleDebug \
:core:assembleDebugAndroidTest \
:compose:assembleDebugAndroidTest \
:extensions:assembleDebug \
:runner:assembleDebug \
:sample:assembleDebug --stacktrace
command: cd instrumentation && ./gradlew assemble :core:assembleAndroidTest --stacktrace
- run:
name: (Instrumentation) Test
command: cd instrumentation && ./gradlew :core:check :extensions:check :runner:check :compose:check --stacktrace
command: cd instrumentation && ./gradlew check --stacktrace
- save_cache:
<<: *cache_key
paths:
Expand All @@ -60,18 +53,30 @@ jobs:
sudo gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
sudo gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
- run:
name: Test with Firebase Test Lab
name: Test with Firebase Test Lab (JUnit 5)
command: >
sudo gcloud firebase test android run \
--type instrumentation \
--app instrumentation/sample/build/outputs/apk/debug/sample-debug.apk \
--test instrumentation/core/build/outputs/apk/androidTest/debug/core-debug-androidTest.apk \
--environment-variables runnerBuilder=de.mannodermaus.junit5.AndroidJUnit5Builder \
--app instrumentation/sample/build/outputs/apk/five/debug/sample-five-debug.apk \
--test instrumentation/core/build/outputs/apk/androidTest/five/debug/core-five-debug-androidTest.apk \
--environment-variables runnerBuilder=de.mannodermaus.junit5.AndroidJUnitFrameworkBuilder \
--test-runner-class androidx.test.runner.AndroidJUnitRunner \
--device model=redfin,version=30,locale=en_US,orientation=portrait \
--device model=oriole,version=33,locale=en_US,orientation=portrait \
--results-bucket cloud-test-${GOOGLE_PROJECT_ID} \
--timeout 15m
- run:
name: Test with Firebase Test Lab (JUnit 6)
command: >
sudo gcloud firebase test android run \
--type instrumentation \
--app instrumentation/sample/build/outputs/apk/six/debug/sample-six-debug.apk \
--test instrumentation/core/build/outputs/apk/androidTest/six/debug/core-six-debug-androidTest.apk \
--environment-variables runnerBuilder=de.mannodermaus.junit5.AndroidJUnitFrameworkBuilder \
--test-runner-class androidx.test.runner.AndroidJUnitRunner \
--device model=pa3q,version=35,locale=en_US,orientation=portrait \
--results-bucket cloud-test-${GOOGLE_PROJECT_ID} \
--timeout 15m
- run:
name: Install gsutil dependency and copy test results data
command: |
Expand Down Expand Up @@ -112,12 +117,12 @@ jobs:
name: (Instrumentation) Build & Deploy
command: |
cd instrumentation
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --stacktrace
./gradlew publishAllPublicationsToSonatypeRepository closeAndReleaseStagingRepositories --stacktrace
- run:
name: (Plugin) Build & Deploy
command: |
cd plugin
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --stacktrace
./gradlew publishAllPublicationsToSonatypeRepository closeAndReleaseStagingRepositories --stacktrace
- store_artifacts:
path: plugin/android-junit5/build/publications
destination: plugin/publications/snapshots
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ jobs:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v4
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: gradle/actions/wrapper-validation@bfd569614358980afc8f89c2730eee75bb97efdf # v5
Loading