Skip to content

Speed up CI lint jobs#22637

Draft
jkmassel wants to merge 7 commits intotrunkfrom
jkmassel/investigate-lint-speed
Draft

Speed up CI lint jobs#22637
jkmassel wants to merge 7 commits intotrunkfrom
jkmassel/investigate-lint-speed

Conversation

@jkmassel
Copy link
Contributor

Summary

  • Move locale consistency checks out of lint.sh into a separate parallel CI job, removing ~3-4 min of gem install + fastlane overhead from each lint job
  • Disable checkDependencies for app-level lint, which avoids analyzing the entire transitive dependency tree
  • Net effect: lint jobs should drop from ~6-10 min to ~2-4 min wall clock

Trade-off: checkDependencies false means lint won't detect string resources used only by library modules. If new UnusedResources warnings appear, they can be suppressed via the baseline.

Testing instructions

Monitor CI build:

  1. Check that "Lint WordPress" and "Lint Jetpack" jobs pass
  2. Check that the new "Locale Consistency" job passes
  • Verify lint jobs are faster than baseline (~6 min typical)
  • Verify no new lint failures from disabling checkDependencies

🤖 Generated with Claude Code

Move locale consistency checks into a separate parallel CI job and
disable checkDependencies for app-level lint. This removes ~4-6 min
of gem install + fastlane overhead from each lint job's critical path.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dangermattic
Copy link
Collaborator

dangermattic commented Feb 27, 2026

1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

jkmassel and others added 2 commits February 27, 2026 12:26
The baseline was generated with checkDependencies=true, so switching
it off causes 234 baseline entries to become "fixed" and surfaces new
UnusedResources errors. Reverting until the baseline can be regenerated.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Set checkDependencies=false for app-level lint to avoid scanning
  the entire dependency tree
- Add add_ignore_attr to local library string configs so merged
  strings are not flagged as unused without dependency checking
- Add separate CI lint jobs for editor, login, and image-editor
  libraries to maintain lint coverage

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@wpmobilebot
Copy link
Contributor

wpmobilebot commented Feb 27, 2026

App Icon📲 You can test the changes from this Pull Request in Jetpack Android by scanning the QR code below to install the corresponding build.

App NameJetpack Android
FlavorJalapeno
Build TypeDebug
Versionpr22637-51d4fad
Build Number1485
Application IDcom.jetpack.android.prealpha
Commit51d4fad
Installation URL7pjv7eaq9648g
Note: Google Login is not supported on these builds.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Feb 27, 2026

App Icon📲 You can test the changes from this Pull Request in WordPress Android by scanning the QR code below to install the corresponding build.

App NameWordPress Android
FlavorJalapeno
Build TypeDebug
Versionpr22637-51d4fad
Build Number1485
Application IDorg.wordpress.android.prealpha
Commit51d4fad
Installation URL66eco0migfla0
Note: Google Login is not supported on these builds.

jkmassel and others added 4 commits February 27, 2026 13:07
The baseline was generated with checkDependencies=true, which meant
dependency-sourced issues were included. With checkDependencies=false,
the baseline needs to reflect app-module-only lint results.

This also captures MissingNullAnnotation warnings that were always
present but never baselined.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
With checkDependencies=false, lint can't see that certain resources
defined in the app are used by editor/login library modules. Add
targeted ignore rules in lint.xml for these specific resources
instead of regenerating the entire baseline.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Debug variants skip R8/ProGuard minification during compilation,
which reduces lint wall time especially on cold caches. All app
code is identical between debug and release — BuildConfig.DEBUG
checks are runtime conditionals, not compile-time code removal.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 2, 2026

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.

3 participants