test(oss-licenses): introduce unified integration-app test suite#380
Draft
timothyfroehlich wants to merge 4 commits intogradle-upgradefrom
Draft
test(oss-licenses): introduce unified integration-app test suite#380timothyfroehlich wants to merge 4 commits intogradle-upgradefrom
timothyfroehlich wants to merge 4 commits intogradle-upgradefrom
Conversation
This was referenced Mar 9, 2026
7d66eeb to
5e232d6
Compare
…#383) Gradle 9.x identifies the custom LicensesCleanUpTask as a hard failure due to implicit dependency conflicts with generation tasks. Standard Gradle 'clean' (Delete) already handles the build directory idiomatically. - Removed LicensesCleanUpTask.groovy and its corresponding test. - Refactored EndToEndTest.kt to use a createRunner() helper with forwardOutput() and strict configuration cache validation. - Optimized parallel test execution by isolating TestKit directories per test class. - Updated build.gradle.kts with optimized heap settings and live test event logging. - Added .kotlin/ to .gitignore to prevent tracking of local metadata. Closes #356, #300, #299
…e support (#384) * fix(oss-licenses): resolve implicit dependency failures on Gradle 9.x Gradle 9.x identifies the custom LicensesCleanUpTask as a hard failure due to implicit dependency conflicts with generation tasks. Standard Gradle 'clean' (Delete) already handles the build directory idiomatically. - Removed LicensesCleanUpTask.groovy and its corresponding test. - Refactored EndToEndTest.kt to use a createRunner() helper with forwardOutput() and strict configuration cache validation. - Optimized parallel test execution by isolating TestKit directories per test class. - Updated build.gradle.kts with optimized heap settings and live test event logging. - Added .kotlin/ to .gitignore to prevent tracking of local metadata. Closes #356, #300, #299 * build(oss-licenses): upgrade to Gradle 9.4 and enable full build cache support This update modernizes the build environment and ensures task outputs are correctly cached and relocatable. - Upgraded Gradle wrapper to 9.4.0 in oss-licenses-plugin. - Added @CacheableTask, @nested, and @PathSensitive annotations to core tasks. - Implemented an automated relocatability test in EndToEndTest.kt. - Verified 100% parallel throughput with isolated TestKit directories. Closes #356 * test(oss-licenses): modernize test matrix to follow Stable/RC/Alpha tracks Updated the E2E test matrix to cover the latest AGP tracks: - Stable: AGP 9.0.1 - RC: AGP 9.1.0-rc01 - Alpha: AGP 9.2.0-alpha02 Also updated Kotlin version expectation logic to correctly handle AGP 9.1 and 9.2. * build(oss-licenses): increase Gradle daemon memory Increased Xmx to 2048m and MaxMetaspaceSize to 1024m to prevent daemon resets during intensive parallel E2E tests. * test(oss-licenses): ensure robust relocatability verification Refactored testRelocatability to use the setupProject helper, ensuring project structure consistency across cloned directories. * test(oss-licenses): ensure bulletproof relocatability verification Modified populate() in testRelocatability() to explicitly skip build/ and .gradle/ directories during copying. This guarantees that the relocated projects start from a pristine state, correctly verifying cache relocation instead of hitting UP-TO-DATE due to accidental output duplication.
- Consolidate modern and legacy test projects into a single 'integration-app/' directory. - Implement shared source code architecture where both build environments target the same 'app/' module. - Add high-signal integration tests for V1 (Espresso) and V2 (Compose) license activities. - Configure automatic exclusion of V2 tests in the legacy build to prevent compilation errors. - Refactor 'IntegrationEndToEndTest.kt' to dynamically execute the appropriate wrapper based on the AGP matrix. - Add 'GEMINI.md' guide for maintenance of the harness.
- Update main.yml to publish and share the plugin as an artifact. - Add 'integration-test' job to execute standalone apps against the built plugin. - Configure Java 21/17 dual-JDK environment for integration runs. - Mark V2 Title bug and Issue 358 (aopalliance) as non-blocking in tests.
9b3905c to
472d6fc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on PR #375
Chain of upstream PRs as of 2026-03-10
PR ci: run workflow on all pull requests #379:
main←ci-infra-updatePR feat: make plugin tasks cacheable and relocatable #378:
ci-infra-update←make-tasks-cacheablePR fix: remove redundant LicensesCleanUpTask to fix implicit dependencies on Gradle 9.x #377:
make-tasks-cacheable←fix-clean-taskPR test: modernize E2E matrix and enable configuration cache strict mode #376:
fix-clean-task←test-infraPR build: upgrade gradle wrapper to 9.4.0 in oss-licenses-plugin #375:
test-infra←gradle-upgradegradle-upgrade←froeht/integration-tests