Skip to content

Speed up CI lint jobs#22637

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

Speed up CI lint jobs#22637
jkmassel wants to merge 6 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 <noreply@anthropic.com>
@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 <noreply@anthropic.com>
- 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 <noreply@anthropic.com>
@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-7d15a10
Build Number1485
Application IDcom.jetpack.android.prealpha
Commit7d15a10
Installation URL1c78bu0e5dbm0
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-7d15a10
Build Number1485
Application IDorg.wordpress.android.prealpha
Commit7d15a10
Installation URL0rpdsaera3l58
Note: Google Login is not supported on these builds.

jkmassel and others added 3 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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
@sonarqubecloud
Copy link

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