fix: diff from last deployed SHA to catch all changes since last deploy (#320) #332

Merged
guettlibot merged 5 commits from issue-320-fix into main 2026-05-29 15:34:26 +00:00
guettlibot commented 2026-05-29 14:53:25 +00:00 (Migrated from codeberg.org)

Root cause

The check-changes job in deploy.yml only diffed HEAD~1..HEAD — the single most-recent commit. When CI-only commits landed after Android code changes (e.g. the three recent Taskfile/workflow fixes), the hourly schedule saw no Android-relevant files in the diff and skipped Play Store deployment every time, even though app code had changed since the last successful publish.

Fix

  • fetch-depth: 0 — full history checkout so LAST_DEPLOYED_SHA is always reachable
  • Diff from LAST_DEPLOYED_SHA — when the last-deployed SHA is known and present in local history, diff from that point instead of just HEAD~1, catching all commits since the last deploy
  • Simplified Python workflow_id filter — removed the == "deploy.yml" equality check that could silently fail if Forgejo returns the full path (.forgejo/workflows/deploy.yml) in the response; the URL query already filters by workflow

Also includes two unrelated pre-existing fixes that blocked task check:

  • Remove duplicate entry in scripts/check_coverage.dart exclusion list
  • Update email_list_selection.png golden (was off by 4 pixels)

🤖 Generated with Claude Code

## Root cause The `check-changes` job in `deploy.yml` only diffed `HEAD~1..HEAD` — the single most-recent commit. When CI-only commits landed *after* Android code changes (e.g. the three recent Taskfile/workflow fixes), the hourly schedule saw no Android-relevant files in the diff and skipped Play Store deployment every time, even though app code had changed since the last successful publish. ## Fix - **`fetch-depth: 0`** — full history checkout so `LAST_DEPLOYED_SHA` is always reachable - **Diff from `LAST_DEPLOYED_SHA`** — when the last-deployed SHA is known and present in local history, diff from that point instead of just `HEAD~1`, catching all commits since the last deploy - **Simplified Python `workflow_id` filter** — removed the `== "deploy.yml"` equality check that could silently fail if Forgejo returns the full path (`.forgejo/workflows/deploy.yml`) in the response; the URL query already filters by workflow Also includes two unrelated pre-existing fixes that blocked `task check`: - Remove duplicate entry in `scripts/check_coverage.dart` exclusion list - Update `email_list_selection.png` golden (was off by 4 pixels) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.