ci(build-tauri): expose Linux AppImage/deb/rpm bundles as artifacts#1302
Conversation
aw-tauri's Tauri bundler already produces .AppImage/.deb/.rpm files under dist/activitywatch/aw-tauri/ on Linux runs, but the upload-artifact step only globs dist/activitywatch-*.*, so they were silently dropped from the build artifacts (and therefore from drafted releases). Add a Linux-only step that copies the bundles out with versioned, arch-suffixed filenames (activitywatch-tauri-$VERSION-linux-$ARCH.$ext) so they match the existing upload pattern. No changes to Windows or macOS jobs. Refs: ActivityWatch#1300
Greptile SummaryThis PR fixes a gap in the Tauri build pipeline where Linux
Confidence Score: 5/5Safe to merge. The change is additive and Linux-only, with no impact on macOS or Windows jobs. The new step is guarded by No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[make package] --> B{runner.os == Linux?}
B -- No --> E[Package dmg / skip]
B -- Yes --> C[Package Linux - Tauri bundles]
C --> D1[ARCH = uname -m]
D1 --> D2[shopt -s nullglob]
D2 --> LOOP["for ext in AppImage deb rpm"]
LOOP --> COUNT{"count of dist/activitywatch/aw-tauri/*.ext"}
COUNT -- "0" --> SKIP[continue]
COUNT -- "1" --> COPY["cp → dist/activitywatch-tauri-VERSION-linux-ARCH.ext"]
COUNT -- ">1" --> FAIL[exit 1]
SKIP --> LOOP
COPY --> LOOP
LOOP -- done --> UPLOAD["Upload packages\ndist/activitywatch-*.*"]
Reviews (2): Last reviewed commit: "ci(build-tauri): guard against multiple ..." | Re-trigger Greptile |
If more than one file of the same extension lands in the bundler output dir, fail fast instead of silently keeping only the last copy. Addresses Greptile P2 review feedback.
|
@greptileai review |
|
Verified against the PR workflow artifacts from run
So the bundle-repo half of |
Problem
aw-tauri's Tauri bundler already produces.AppImage,.deb, and.rpmfiles underdist/activitywatch/aw-tauri/on Linux runs, but theupload-artifactstep in.github/workflows/build-tauri.ymlonly globsdist/activitywatch-*.*. As a result the Linux Tauri bundles were silently dropped from build artifacts (and from drafted releases), even though Linux ZIPs do get uploaded.This is what @ErikBjare flagged in #1300:
Change
Add a Linux-only
Package Linux (Tauri bundles)step that copies the bundler outputs out with versioned, arch-suffixed filenames so they match the existing upload glob:activitywatch-tauri-${VERSION_WITH_V}-linux-${ARCH}.AppImageactivitywatch-tauri-${VERSION_WITH_V}-linux-${ARCH}.debactivitywatch-tauri-${VERSION_WITH_V}-linux-${ARCH}.rpmshopt -s nullglobkeeps the step a no-op if any extension is missing (e.g. if rpm packaging is disabled intauri.conf.jsonfor some build), instead of failing on a literal*.rpmglob.Out of scope
build.yml(non-Tauri build, already has its own AppImage/deb steps)uname -mreturnsaarch64on Linux arm64 but the Makefile checks forarm64); that's an aw-tauri Makefile bug, not part of this PRVerification
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/build-tauri.yml'))")activitywatch-tauri-*-linux-x86_64.{AppImage,deb,rpm}artifacts visible in the workflow runCloses the bundle-repo half of #1300.