ci: make publish build deterministic (scope to library AARs, drop flaky test gate + clean)#18
Merged
Merged
Conversation
The previous change ran `clean bundleReleaseAar testReleaseUnitTest` in one Gradle invocation, which failed on `:dd-sdk-android-core:testReleaseUnitTest` with `java.io.FileNotFoundException: .../testReleaseUnitTest/kover-agent.args (No such file or directory)`: `clean` wipes `build/tmp` and races with Kover's agent-args generation when they run in the same invocation. Reproduced locally: `clean + testReleaseUnitTest` together fails identically; `testReleaseUnitTest` alone succeeds. `clean` is unnecessary anyway — the CI runner is ephemeral (fresh checkout, empty build/, only ~/.gradle is cached), so drop it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
clean from build step (fixes Kover kover-agent.args failure)
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.
Summary
Make the publish job fast and deterministic. Build step becomes
./gradlew bundleReleaseAar --stacktraceplustimeout-minutes: 90.Why each change
bundleReleaseAarinstead ofclean assembleRelease—assembleReleaseat the root also assembles the sample apps (sample/*, Us1–Us5 flavors) + benchmark/tools, which pushed the job past 2h.bundleReleaseAaris an Android-library-only task: it compiles and packages every publishable module's.aarand skips the sample application modules automatically. Deterministic fail-fast gate, ~8 min.Do not run
testReleaseUnitTestin the publish path. Investigation (JDK 17, matching CI) found the libraries all build, butdd-sdk-android-corecarries flaky timing/performance unit tests —KronosTimeProviderTest(±10 ms window),MoveDataMigrationOperationTest(500 ms retry-delay window), andJointToStringVsStringBuilderPerformanceTest— a different one fails each run under load. Gating publishing on them makes releases nondeterministic. They should run in a separate CI workflow that can retry/quarantine.bundleReleaseAarstill proves every shipped module compiles and packages.Drop
clean— unnecessary on an ephemeral runner; it also raced with Kover'skover-agent.argsgeneration when combined with the test task.Verification (local, JDK 17 = CI's JDK)
bundleReleaseAartasks succeed — the gate is green.🤖 Generated with Claude Code