Repository navigation
ci(build-tauri): verify aw-awatcher and aw-sync staged for Linux bundle - #1511
TimeToBuildBob wants to merge 1 commit into
Conversation
After PR ActivityWatch#1499 the Makefile stages both binaries into aw-tauri/src-tauri/modules/ before the Tauri bundle step. Add a regression gate that fails the Linux CI leg if either binary is absent post-build, preventing a silent regression where the AppImage/deb ships without its watcher processes. Git-Session-Id: 983c
|
🤖 AI code reviewAdds a Linux-only CI step to the build-tauri job that checks aw-awatcher and aw-sync are present and executable in aw-tauri/src-tauri/modules/ after make build, failing the job if either is missing. The step is placed between the Build step and the Run tests step. Safe to merge — no P0/P1 findingsConfidence 5/5 ✅ No thread-worthy findings. Advisory notes follow; they are retained without opening review threads. 1 advisory finding (summary-only, not scored)These P2 guard, heuristic, trade-off, or documentation claims are retained for judgment without opening review threads.
The new verification step runs after the 'Build' step but before the 'Run tests' step, and it checks the path aw-tauri/src-tauri/modules/${binary}. However, the actual staging of aw-awatcher and aw-sync into that directory is performed by the Makefile during the 'Build' step (make build). The step's placement is correct relative to the build, but the check only verifies the file exists and is executable; it does not verify that the staged binaries are the freshly built ones rather than stale artifacts from a previous run. On a clean CI runner this is fine, but the step does not guard against the case where the Makefile staging step silently fails to overwrite an existing binary, leaving an old version in place. The observable consequence is that a regression in the staging logic that leaves a stale binary would not be caught, and the bundle could ship an outdated watcher. This is a low-severity gap because the primary failure mode (missing binary) is caught, but the check's name and comment claim it verifies the bundle includes the watchers, which it only partially does. How this was verified: Checked the step's run block: it only tests -x on the path, not freshness or content. The Makefile staging is not part of this diff, so I cannot confirm whether it overwrites or skips existing files. Consensus: 2/3 passes agreed — pass 3 looked and disagreed Files changed (1) — the diff as I read it
Previous review passes
Reviewed Maintainer commands
|
|
The advisory's suggestion to move this check after packaging is unnecessary: the top-level The Linux x86-64 and ARM64 jobs are still running; the x86-64 staging check has not run yet. No failing check is reported, so no rerun or code change is needed. Leaving this open for the Linux CI results and maintainer merge. |
Summary
After #1499 the Makefile stages
aw-awatcherandaw-syncintoaw-tauri/src-tauri/modules/before the Tauri bundle step on Linux. Without a CI gate, a regression in the staging step would ship AppImage/deb bundles silently missing their watcher processes.This PR adds a lightweight Linux-only step after
make buildthat verifies both binaries are present and executable before the build continues to packaging.No functional change to the build output.
Test plan
ubuntu-24.04,ubuntu-24.04-arm) pass with the step green✓ aw-awatcher and aw-sync staged for Linux Tauri bundle