npx skills add ...
npx skills add bitwarden/android --skill build-test-verify
Build, test, lint, and deploy commands for the Bitwarden Android project. Use when running tests, building APKs/AABs, running lint/detekt, deploying, using fastlane, or discovering codebase structure. Triggered by "run tests", "build", "gradle", "lint", "detekt", "deploy", "fastlane", "assemble", "verify", "coverage".
npx skills add bitwarden/android --skill build-test-verify
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN | Yes (CI) | GitHub Packages auth for SDK (read:packages scope) |
| Build flavors | - | standard (Play Store), fdroid (no Google services) |
| Build types | - | debug, beta, release |
If builds fail resolving the Bitwarden SDK, verify GITHUB_TOKEN in user.properties or environment and check connectivity to maven.pkg.github.com.
IMPORTANT: The app module uses the standard flavor. Always use testStandardDebugUnitTest, NOT testDebugUnitTest.
IMPORTANT: Always pipe test output through a filter that captures failures on the first run. Gradle suppresses detailed failure output by default, so use 2>&1 | grep -E "FAILED|BUILD|expected:|actual:|AssertionError|failures" | head -30 to see pass/fail results and assertion details without needing a second run.
If you need full failure details beyond what grep captures, check the HTML test report:
FakeDispatcherManager from :core:testFixturesmockk<T> { every { } returns }, coEvery { } for suspendstateEventFlow() helper from BaseViewModelTestClock for deterministic time testingIMPORTANT: Prefer running detekt on modified files only — a full project scan is slow and unnecessary during development. The project supports a -Pprecommit=true flag that limits detekt to staged files.
IMPORTANT: Always pipe detekt output through a filter to capture errors on the first run. Detekt prints violation details to stderr/stdout but Gradle can obscure them. Use the grep pattern below to see violations immediately.
-Pprecommit=true WorksThe root build.gradle.kts configures detekt tasks to use git diff --name-only --cached when this property is set, limiting analysis to staged files only. This is the same mechanism used by the project's pre-commit hook. Stage your changes with git add before running.
Version location: gradle/libs.versions.toml
Pattern: YEAR.MONTH.PATCH
Publishing channels: