Skip to content

Keep fork CI in ankiquest_* workflows, restore upstream .github - #88

Merged
float3 merged 3 commits into
ankiquestfrom
fork-workflows
Nov 1, 2026
Merged

float3 merged 3 commits into
ankiquestfrom
fork-workflows

Conversation

@float3

@float3 float3 commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Every upstream file under .github/ is now byte-identical to ankidroid/Anki-Android main (git diff origin/main -- .github only lists added ankiquest_* files, .github/tests and ankiquest-release.md), so upstream merges should no longer conflict there (like #82 did on tests_unit.yml).

What moved where:

  • lint.yml, tests_unit.yml, tests_emulator.yml → ankiquest_lint.yml, ankiquest_tests_unit.yml, ankiquest_tests_emulator.yml. These keep the fork changes: push runs only on ankiquest (one run per PR push, from Run lint, emulator and nix checks once per PR push #85), Gradle cache writes on ankiquest, macos-latest and the 75-minute JUnit timeout. Job names don't change, so the checks still show up as Lint Kotlin, Lint Javascript, JUnit Tests (ubuntu|macos|windows run 1) and Android Emulator Test (...). ankiquest has no branch protection, so no required-check settings are affected.
  • screenshot_store.yml, screenshot_compare.yml, screenshot_comment.yml → ankiquest_screenshot_*.yml. These keep the per-branch ankiquest baseline and fail when no baseline exists. Compare downloads from ankiquest_screenshot_store.yml, and Comment triggers on ankiquest Screenshots: Compare. The first compare on a PR after merge needs a baseline: run gh workflow run ankiquest_screenshot_store.yml -R float3/AnkiQuest-Android --ref ankiquest after merging, or wait for the first push to ankiquest.
  • milestone.yml, assignees.yml: no fork copy. The fork has no milestones, and on a single-owner repo there are no assignees worth clearing, so these bots aren't needed. Their regression tests were removed. The screenshot tests now point at the ankiquest_ copies.
  • nix.yml, sync_upstream.yml, milestone_tests.yml → ankiquest_nix.yml, ankiquest_sync_upstream.yml, ankiquest_workflow_tests.yml (renamed, so the prefix covers every fork-only workflow; job names unchanged).
  • dependabot.yml is restored to upstream. Dependabot only reads this one file from the default branch, so there are two choices: keep a fork edit that conflicts whenever upstream touches it, or give up fork-side Dependabot. Fork-side Gradle, npm and Actions bumps would also edit the same libs.versions.toml and uses: lines that upstream's own Dependabot bumps, which conflicts on every sync. Upstream's bumps already reach the fork through the daily sync PR. Upstream's config targets dependency-updates, which doesn't exist here, so on the fork Dependabot will report a missing target branch and open nothing. The Nix ecosystem entry moves to ankiquest_flake_lock.yml: weekly or on dispatch, it runs nix flake update and opens a flake-lock-<date> PR into ankiquest with UPSTREAM_SYNC_TOKEN, so the PR gets normal CI, including the dev-shell build.

Workflows to disable

After this merges, the upstream copies would run alongside the ankiquest_ ones (duplicate checks, and pushes to every PR branch) or do things the fork doesn't want:

gh workflow disable lint.yml -R float3/AnkiQuest-Android
gh workflow disable tests_unit.yml -R float3/AnkiQuest-Android
gh workflow disable tests_emulator.yml -R float3/AnkiQuest-Android
gh workflow disable screenshot_store.yml -R float3/AnkiQuest-Android
gh workflow disable screenshot_compare.yml -R float3/AnkiQuest-Android
gh workflow disable screenshot_comment.yml -R float3/AnkiQuest-Android
gh workflow disable milestone.yml -R float3/AnkiQuest-Android
gh workflow disable assignees.yml -R float3/AnkiQuest-Android

These use file names because some display names are shared or contain emoji. Upstream milestone.yml fails on this repo (milestone 79 doesn't exist). Upstream assignees.yml looks up linked issues of ankidroid/Anki-Android PRs with the same number and clears assignees on fork issues with those numbers. Both should be disabled soon after merging. A disabled workflow stays disabled when upstream edits its file. Workflow files that upstream adds later start enabled.

Left enabled because they are harmless or useful here: CodeQL, Conflict Scan, Add/Remove Labels, Merge Requirements, Cancel Obsolete Merge Queue Runs, and the dispatch-only APK Size Comparison, OpenCollective, Publish and Sync Translations workflows. Publish's scheduled job is guarded to ankidroid/Anki-Android. Stale is already disabled.

Restore every upstream .github file to ankidroid/Anki-Android main so
upstream merges stop conflicting there. The fork's lint, unit test,
emulator test and screenshot changes now live in ankiquest_* copies,
the fork-only nix, upstream sync and workflow test workflows get the
same prefix, and a weekly flake.lock pull request replaces the
Dependabot nix entry.
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

Snapshot diff report vs ankiquest. Open screenshot-diff for diffs.

  • AllActivitiesScreenshotTest: 2 changes
  • AnkiquestHomeScreenshotTest: 2 changes
  • PreferencesScreenshotTest: 1 change
All 5 changed screenshots

AllActivitiesScreenshotTest

  • AnkiquestHomeActivity_compare.png
  • AnkiquestHomeActivity_edgeToEdge_compare.png

AnkiquestHomeScreenshotTest

  • today_320dp_200percent_compare.png
  • today_320dp_compare.png

PreferencesScreenshotTest

  • AnkiquestSettingsFragment_compare.png

@float3
float3 merged commit 68d79eb into ankiquest Nov 1, 2026
38 checks passed
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.

1 participant