Skip to content

feature(MBA-2337): add pull-request CI (build, lint, unit + instrumentation tests) - #7

Open
devin-ai-integration[bot] wants to merge 3 commits into
mainfrom
devin/1789017132-pull-request-ci
Open

devin-ai-integration[bot] wants to merge 3 commits into
mainfrom
devin/1789017132-pull-request-ci

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 10, 2026

Copy link
Copy Markdown

Summary

MBA-2337 — nothing ran on pull_request before; this adds .github/workflows/pull-request.yml (on pull_request and push to main):

  • build job: ./gradlew assembleDebug:components:assembleReleaselinttestDebugUnitTest, JDK 17 (temurin, matches on-release.yml and Ticket 2's target), gradle/actions/setup-gradle with validate-wrappers: true (tampered gradle-wrapper.jar fails the job) and Gradle cache (keyed by setup-gradle on wrapper/catalog/build-script hashes; cache-read-only off main so only main writes). Lint/unit reports + APK/AAR uploaded as artifacts. All actions are pinned to full commit SHAs (# vX.Y.Z comments) since this runs on pull_request.
  • instrumentation job: reactivecircus/android-emulator-runner, x86_64 google_apis API 34 (= current targetSdk; bump the matrix when Ticket 4 lands), KVM enabled, AVD snapshot cached. Runs :app:connectedDebugAndroidTest and uploads app/build/reports/androidTests/connected/debug/ + XML results as androidTest-report-api-34, if: always().

Four small fixes were required for the workflow to actually be green on main:

  1. gradlew was committed as 100644./gradlew fails with Permission denied in CI. Now 100755.
  2. ic_currency_north_america_$_{round,sharp}.xml break :components:packageDebugResources ($ is not a valid resource name char) — main does not build today. Renamed to ..._dollar_{round,sharp}.xml (same as closed fix: rename currency_north_america drawables to valid resource names #1; contents unchanged, nothing references them).
  3. ./gradlew lint reported 2724 errors, all InvalidVectorPath in the generated icon set (-.005 instead of -0.005). Added components/lint.xml downgrading that one check to warning so lint still gates on everything else; fixing the icon generator is out of scope for this ticket. Alternative would be a 1.7 MB lint-baseline.xml.
  4. components/build.gradle publishing.repositories.maven used project.property('mavenUsername') etc., which throws at configuration time when the Artifactory properties are absent (i.e. on every CI task, not just publish). Now the four properties (zds-android-maven, publish, mavenUsername, mavenPassword) are read with findProperty; the repo URL is only composed when all are present (otherwise an unreachable https://invalid.invalid/... placeholder, never a relative path), and PublishToMavenRepository tasks throw Cannot publish: missing Gradle properties … in doFirst. Overlaps Ticket 8 (MBA-2343).

Verified locally with JDK 17 and no ~/.gradle/gradle.properties: ./gradlew assembleDebug :components:assembleRelease lint testDebugUnitTest → BUILD SUCCESSFUL. testDebugUnitTest is NO-SOURCE and there are no androidTest sources on main yet (Ticket 6 / #4 adds them).

Follow-ups (not in this PR): make Build, lint and unit tests a required status check on main once green.

Devin-Org: engineering

Link to Devin session: https://app.devin.ai/sessions/61c69fb00dd543ff825286b858d5016c
Open in Devin Desktop: https://app.devin.ai/desktop/session/61c69fb00dd543ff825286b858d5016c?variant=devin

…instrumentation tests)

- New .github/workflows/pull-request.yml on pull_request and push to main
- Wrapper validation and Gradle cache via gradle/actions/setup-gradle
- Instrumentation job on API 34 emulator with report artifact
- Make gradlew executable so ./gradlew runs in CI
- Rename two drawables with '$' in their names that broke packageDebugResources
- Downgrade InvalidVectorPath to warning in components/lint.xml (2.7k generated icon paths)
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

…n time

CI has no Artifactory credentials; project.property() threw during configuration
and failed every Gradle task. Use findProperty with empty fallbacks.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

Comment thread components/build.gradle Outdated
Comment thread .github/workflows/pull-request.yml Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants