Skip to content

ci: add theme instrumentation gate and theming backfill (R571) - #578

Merged
ryacub merged 1 commit into
mainfrom
codex/r571-theme-ci-gate-backfill
Mar 21, 2026
Merged

ci: add theme instrumentation gate and theming backfill (R571)#578
ryacub merged 1 commit into
mainfrom
codex/r571-theme-ci-gate-backfill

Conversation

@ryacub

@ryacub ryacub commented Mar 21, 2026

Copy link
Copy Markdown
Owner

Ticket

Objective

  • Add a dedicated CI gate for theme-related instrumentation coverage and complete theming-related changelog backfill notes without widening functional scope.

Scope

  • Add theme instrumentation workflow gated by theming-related paths.
  • Add new instrumentation tests for custom theme accent persistence/reset/fallback.
  • Update existing theme appearance android test callsite to match current widget params.
  • Backfill missing Unreleased changelog note and add a short README note for the new CI gate.

Non-goals

  • No theme engine refactor.
  • No runtime behavior changes outside theming test/CI coverage.
  • No broad androidTest architecture changes.

Files Changed

  • .github/workflows/theme_instrumentation_pr.yml
  • app/src/androidTest/java/eu/kanade/presentation/theme/ThemePreferencesInstrumentationTest.kt
  • app/src/androidTest/java/eu/kanade/presentation/more/settings/widget/ThemeAppearanceFlowAndroidTest.kt
  • CHANGELOG.md
  • README.md

Verification

  • Commands run:
    • ./gradlew spotlessCheck
    • ./gradlew :app:compileDebugKotlin
    • ./gradlew :app:testDebugUnitTest --tests "*ThemeModeTest*" --tests "*UiPreferencesTest*" --tests "*TachiyomiThemeRoutingTest*"
    • ./gradlew :app:assembleDebugAndroidTest
  • Results:
    • All commands above passed locally.
  • Not tested:
    • ./gradlew :app:connectedDebugAndroidTest (no connected emulator/device available locally at execution time; covered by PR CI workflow).

Risk

  • Main risk is instrumentation test flakiness on emulator CI. Mitigation: path-scoped trigger and failure artifact upload (reports + logcat).

SLO Impact

  • No runtime SLO impact. CI-only/test-only hardening.

Rollback

  • Revert this PR commit to remove the workflow/tests/docs additions.

Release Notes

  • Added a dedicated theme instrumentation PR gate and additional Android instrumentation coverage for custom theme accent persistence/reset/fallback.

Checklist

  • Naming conventions followed (use "Rayniyomi" in user-facing text, see naming conventions)
  • Branch rebased on latest main and verification re-run (see rebase policy)
  • New coroutine scopes have documented owner and cancellation path
  • No new runBlocking on UI/main thread paths

Definition of Done (DoD)

  • Acceptance criteria met and non-goals respected
  • Verification matrix completed (Risk Tier: T1)
  • Self-review completed
  • Rebased on latest main and revalidated (mandatory for merge)
  • Sprint board updated (branch, commit, checks, PR link)
  • Release notes drafted (if applicable)

Fork Compliance Checklist (for new forks only)

If you are creating a new fork of this project, ensure the following:

  • App Identity: Changed app name from "Aniyomi" to your fork name
  • App Icon: Replaced launcher icon assets with fork-specific icons
  • Application ID: Changed applicationId in app/build.gradle.kts from xyz.rayniyomi to your unique ID
  • Update Checker: Configured AppUpdateChecker.kt to point to your fork's repository
  • Analytics: Either disabled Firebase Analytics or configured with your own google-services.json
  • Crash Reporting: Either disabled ACRA crash reporting or configured with your own endpoint credentials

See CONTRIBUTING.md Forks section for details.

@ryacub
ryacub merged commit 1ccf1a9 into main Mar 21, 2026
6 checks passed
ryacub pushed a commit that referenced this pull request Mar 21, 2026
Version bump type: fork build
Auto-generated after merging PR #578: ci: add theme instrumentation gate and theming backfill (R571)
@ryacub
ryacub deleted the codex/r571-theme-ci-gate-backfill branch March 21, 2026 03:25
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.

R569: theming test governance — CI instrumentation for custom theme flows

1 participant