Skip to content

fix(ci): build Qt AppImage on Ubuntu 22.04#1345

Merged
ErikBjare merged 1 commit into
ActivityWatch:masterfrom
TimeToBuildBob:fix/qt-appimage-ubuntu-22
Jul 4, 2026
Merged

fix(ci): build Qt AppImage on Ubuntu 22.04#1345
ErikBjare merged 1 commit into
ActivityWatch:masterfrom
TimeToBuildBob:fix/qt-appimage-ubuntu-22

Conversation

@TimeToBuildBob

Copy link
Copy Markdown
Contributor

What

  • Builds the Linux Qt artifact matrix on ubuntu-22.04 instead of ubuntu-24.04.
  • Leaves the Tauri Linux matrix on ubuntu-24.04/ubuntu-24.04-arm because it currently depends on the WebKitGTK 4.1 package pin from ci: fix appimage builds aw-tauri#99.

Why

The standalone Qt AppImage is the release asset users hit first for older Linux distributions. Building it on Ubuntu 22.04 lowers the glibc baseline compared with Noble-built artifacts, which should make it more compatible across older distros.

This follows up the older-distro AppImage discussion in https://github.com/orgs/ActivityWatch/discussions/1297#discussioncomment-17462292.

Verification

  • Parsed .github/workflows/release.yml with PyYAML.

@greptile-apps

greptile-apps Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Switches the build-qt job's Linux runner from ubuntu-24.04 to ubuntu-22.04 to lower the glibc baseline of the published Qt AppImage, improving compatibility with older Linux distributions. The Tauri build matrix intentionally remains on ubuntu-24.04/ubuntu-24.04-arm because it pins libwebkit2gtk-4.1 packages that are only available in Ubuntu 24.04's repos.

  • All Qt5 APT packages listed in the install step (qt5-qmake, qtbase5-dev, libqt5x11extras5, etc.) are present in Ubuntu 22.04's repos, so the build should work without package-availability issues.
  • The release job's artifact download uses a path glob (dist/*/activitywatch-*.*) that is OS-name–agnostic, so the renamed artifact (builds-ubuntu-22.04-py3.9) is picked up correctly.
  • Cargo and node_modules caches keyed to the old ubuntu-24.04 runner label will be cold on the first run; this is expected and self-healing.

Confidence Score: 5/5

Safe to merge — the change is a one-line runner label swap with a clear rationale and no downstream breakage.

The runner change from ubuntu-24.04 to ubuntu-22.04 for the Qt/AppImage build is correct and complete. All required APT packages (Qt5, libqt5x11extras5, etc.) exist in Ubuntu 22.04 repos, the Tauri job correctly stays on 24.04 for its WebKitGTK 4.1 dependency, and the release artifact collection glob is OS-name–agnostic so no downstream jobs are affected.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/release.yml Single-line runner label change in the build-qt matrix (ubuntu-24.04 → ubuntu-22.04); Tauri matrix unchanged. All required Qt5/APT packages exist on 22.04 and downstream artifact globs are OS-name-agnostic.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[push / pull_request] --> B[build-qt\nubuntu-22.04 ✅ / windows-latest / macos-latest]
    A --> C[build-tauri\nubuntu-24.04 / ubuntu-24.04-arm / windows-latest / macos-latest]

    B -->|Linux| D[Install Qt5 APT deps\navailable on 22.04]
    B -->|Linux| E[Package AppImage\nlower glibc baseline]
    B -->|Linux| F[Package .deb]
    B --> G[Upload artifact\nbuilds-ubuntu-22.04-py3.9]

    C -->|Linux| H[Install libwebkit2gtk-4.1\npinned 2.44.0-2\n24.04 only]
    C --> I[Upload artifact\nbuilds-tauri-ubuntu-24.04-py3.9]

    J[release job] -->|glob: dist/*/activitywatch-*.*| G
    J -->|glob: dist/*/activitywatch-*.*| I
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[push / pull_request] --> B[build-qt\nubuntu-22.04 ✅ / windows-latest / macos-latest]
    A --> C[build-tauri\nubuntu-24.04 / ubuntu-24.04-arm / windows-latest / macos-latest]

    B -->|Linux| D[Install Qt5 APT deps\navailable on 22.04]
    B -->|Linux| E[Package AppImage\nlower glibc baseline]
    B -->|Linux| F[Package .deb]
    B --> G[Upload artifact\nbuilds-ubuntu-22.04-py3.9]

    C -->|Linux| H[Install libwebkit2gtk-4.1\npinned 2.44.0-2\n24.04 only]
    C --> I[Upload artifact\nbuilds-tauri-ubuntu-24.04-py3.9]

    J[release job] -->|glob: dist/*/activitywatch-*.*| G
    J -->|glob: dist/*/activitywatch-*.*| I
Loading

Reviews (1): Last reviewed commit: "fix(ci): build Qt AppImage on Ubuntu 22...." | Re-trigger Greptile

@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

All checks passing (10/10 ✅, 2 Windows builds still in progress but unrelated to this Linux-only change). Ready for review — this lowers the glibc baseline for the Qt AppImage by building on Ubuntu 22.04 instead of 24.04, improving compatibility with older distributions.

@ErikBjare ErikBjare merged commit 09bc42b into ActivityWatch:master Jul 4, 2026
16 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.

2 participants