Skip to content

Conversation

@rpardini
Copy link
Member

@rpardini rpardini commented Jan 2, 2026

gha: build: linux: rework into matrix; use bookworm for .deb builds

  • gha: build: linux: rework into matrix; use bookworm for .deb builds
    • this should reduce the glibc dep version requirement of .deb's, allowing them to run on old but still supported systems
      • See https://v2.tauri.app/distribute/debian/#limitations
        • "you must build your Tauri application using the oldest base system you intend to support"
        • Debian oldstable (Bookworm) will be supported until late 2028, so fair to support it
        • also, there's no downsides; imager itself runs great either way, and .deb install pulls updated deps on newer distros
    • fold linux-x64 and linux-amd64 into a single matrix job (1st level)
    • 2nd matrix level is per-type:
      • deb is now built using an oldtable container
      • appimage is built without container, directly on runner, as before
        • seems like appimage/linuxdeploy doesn't wanna be run in a container
        • also, the AppImage does seem to contain libs, so we don't wanna ship old ones
          Signed-off-by: Ricardo Pardini ricardo@pardini.net
  • gha: build: set a specific TAURI_CLI_VERSION (2.9.6)
    • so we can hash it into the cache keys (done in later commit) for consistency
      Signed-off-by: Ricardo Pardini ricardo@pardini.net
  • gha: build: linux: rework caching for consistency
    • actions/setup-node doesn't allow for setting cache keys
      • even in recent versions... (bumped to v6)
      • so move npm caching to actions/cache:
        • disable setup-node caching via package-manager-cache: false
        • add new step for actions/cache "npm dependencies"
          • cache key includes the runner image, the container distro (if any), and hash of package-lock.json
    • for Swatinem/rust-cache
      • use a cache key that includes the runner image, the container distro (if any), and TAURI_CLI_VERSION
      • add a TODO ref Cargo.lock missing/.gitignored, as it would be hashed too automatically had it existed
    • for actions/cache based "cargo bin tauri-cli" caching
      • use a cache key that includes the runner image, the container distro (if any), and TAURI_CLI_VERSION
      • also TODO ref Cargo.lock, which was spelled out, but doesn't exist
      • also TODO as it seems to me this is already covered by the Swatinem/rust-cache cache
        Signed-off-by: Ricardo Pardini ricardo@pardini.net

- this should reduce the glibc dep version requirement of .deb's, allowing them to run on old but still supported systems
  - See https://v2.tauri.app/distribute/debian/#limitations
    - "you must build your Tauri application using the oldest base system you intend to support"
    - Debian oldstable (Bookworm) will be supported until late 2028, so fair to support it
    - also, there's no downsides; imager itself runs great either way, and .deb install pulls updated deps on newer distros
- fold linux-x64 and linux-amd64 into a single matrix job (1st level)
- 2nd matrix level is per-type:
  - `deb` is now built using an oldtable container
  - `appimage` is built without container, directly on runner, as before
     - seems like appimage/`linuxdeploy` doesn't wanna be run in a container
     - also, the AppImage does seem to contain libs, so we don't wanna ship old ones

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- so we can hash it into the cache keys (done in later commit) for consistency

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- `actions/setup-node` doesn't allow for setting cache keys
  - even in recent versions... (bumped to v6)
  - so move npm caching to `actions/cache`:
    - disable `setup-node` caching via `package-manager-cache: false`
    - add new step for `actions/cache` "npm dependencies"
      - cache key includes the runner image, the container distro (if any), and hash of `package-lock.json`
- for `Swatinem/rust-cache`
  - use a cache key that includes the runner image, the container distro (if any), and TAURI_CLI_VERSION
  - add a TODO ref Cargo.lock missing/.gitignored, as it would be hashed too automatically had it existed
- for `actions/cache` based "cargo bin tauri-cli" caching
  - use a cache key that includes the runner image, the container distro (if any), and TAURI_CLI_VERSION
  - also TODO ref Cargo.lock, which was spelled out, but doesn't exist
  - also TODO as it seems to me this is already covered by the `Swatinem/rust-cache` cache

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
@rpardini rpardini force-pushed the pr/gha-build-linux-rework-into-matrix-use-bookworm-for-deb-builds branch from ad7023d to 9a8288f Compare January 2, 2026 18:17
@rpardini rpardini marked this pull request as ready for review January 2, 2026 18:23
@SuperKali SuperKali added the status: ready for review Ready to be reviewed label Jan 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: ready for review Ready to be reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants