Skip to content

ci: non-blocking Play Store lint/bundletool on Android RC builds cp-7.79.0#29755

Merged
joaoloureirop merged 14 commits into
mainfrom
feat/android-manifest-validation
May 26, 2026
Merged

ci: non-blocking Play Store lint/bundletool on Android RC builds cp-7.79.0#29755
joaoloureirop merged 14 commits into
mainfrom
feat/android-manifest-validation

Conversation

@joaoloureirop

@joaoloureirop joaoloureirop commented May 5, 2026

Copy link
Copy Markdown
Contributor

Description

Play Store–shaped Android issues (merged prodRelease manifest / AAB structure) are easy to miss until late in release. This PR runs non-blocking checks on the same AAB produced by build.yml after the Android Gradle release step, instead of a separate CI job on every PR.
What changed:

  • After main Android Release builds (not Debug / e2e), run :app:lintProdRelease and bundletool validate on the existing prodRelease AAB via scripts/android-play-store-check-slack.mjs (always exits 0; failures are collected, not job-fatal).
  • For main-rc builds, upload android-play-store-check-slack.md and surface failures in the Slack RC notification (slack-rc-notification.yml + slack-rc-notification.mjs).
  • Add a reusable composite action (.github/actions/android-play-store-manifest-check) for standalone/manual validation; add lint-baseline.xml and CI Gradle tweaks so lint can run in GHA.
    RC builds keep shipping; release owners get lint/bundletool issues in Slack when checks fail.

Changelog

CHANGELOG entry: null

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/MCRM-73
https://consensyssoftware.atlassian.net/browse/MCWP-478

Manual testing steps

Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]

Screenshots/Recordings

Before

image

After

image

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

@github-actions

github-actions Bot commented May 5, 2026

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@joaoloureirop joaoloureirop changed the title citest play store validation workflow ci: test play store validation workflow May 5, 2026
@metamaskbotv2 metamaskbotv2 Bot added the team-mobile-platform Mobile Platform team label May 5, 2026
@joaoloureirop joaoloureirop force-pushed the feat/android-manifest-validation branch 2 times, most recently from dd70ab3 to 1ee5e8c Compare May 13, 2026 15:46
@joaoloureirop joaoloureirop marked this pull request as ready for review May 13, 2026 16:15
@joaoloureirop joaoloureirop requested a review from a team as a code owner May 13, 2026 16:15
@github-actions github-actions Bot added size-XL and removed size-L labels May 13, 2026
@joaoloureirop joaoloureirop changed the title ci: test play store validation workflow ci: non-blocking Play Store lint/bundletool on Android RC builds May 20, 2026
@joaoloureirop joaoloureirop enabled auto-merge May 20, 2026 01:07
Resolve conflicts in slack-rc-notification: keep main cherry-picks PR link
and Play Store check artifact reporting from this branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 95%
click to see 🤖 AI reasoning details

E2E Test Selection:
All 9 changed files are purely CI/build infrastructure with zero impact on app runtime behavior:

  1. New GitHub Action (.github/actions/android-play-store-manifest-check/action.yml): A new composite action for Android Play Store manifest validation. Not invoked during E2E test runs.

  2. Build workflow additions (.github/workflows/build.yml): Adds Play Store lint/bundletool validation steps that are explicitly conditioned to skip e2e builds (env.METAMASK_ENVIRONMENT != 'e2e'). No E2E test infrastructure is affected.

  3. Slack RC notification workflow (.github/workflows/slack-rc-notification.yml): Adds permissions and artifact download for Play Store check report. Pure CI notification infrastructure.

  4. Android build.gradle: Only adds a lint baseline configuration (lint { baseline = file("lint-baseline.xml") }). This affects the Android Lint tool configuration, not app runtime behavior.

  5. lint-baseline.xml: New file that suppresses known existing lint issues. No runtime impact.

  6. gradle.properties / gradle.properties.github: Adds android.jetifier.ignorelist=.*byte-buddy.* to fix a Jetifier compatibility issue with byte-buddy 1.17+. This is a build toolchain fix that doesn't affect app runtime behavior or E2E test execution.

  7. scripts/android-play-store-check-slack.mjs: New script for CI reporting only.

  8. scripts/slack-rc-notification.mjs: Updated to include Play Store check results in Slack notifications. Pure CI notification script.

None of these changes touch app source code, React Native components, controllers, navigation, or any functionality tested by E2E tests. The changes are entirely confined to the Android build toolchain and CI notification pipeline. No E2E tests need to run to validate these changes.

Performance Test Selection:
All changes are CI/build infrastructure only. No app source code, UI components, state management, or runtime behavior is modified. There is no performance impact on the app itself. No performance tests are needed.

View GitHub Actions results

@sonarqubecloud

Copy link
Copy Markdown


- name: Restore .metamask folder
id: restore-metamask
uses: actions/cache@v4

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We are hitting this cache limit very often, not sure if this is ideal, we should use maybe artifacts

@joaoloureirop joaoloureirop changed the title ci: non-blocking Play Store lint/bundletool on Android RC builds ci: non-blocking Play Store lint/bundletool on Android RC builds cp-7.79.0 May 26, 2026
@joaoloureirop joaoloureirop added this pull request to the merge queue May 26, 2026
Merged via the queue into main with commit b09b78f May 26, 2026
168 of 169 checks passed
@joaoloureirop joaoloureirop deleted the feat/android-manifest-validation branch May 26, 2026 21:50
@github-actions github-actions Bot locked and limited conversation to collaborators May 26, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.80.0 Issue or pull request that will be included in release 7.80.0 label May 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.80.0 Issue or pull request that will be included in release 7.80.0 size-XL team-mobile-platform Mobile Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants