From f2ade0b1a1a58e00bb44ac76b0c21b48d57ed7a2 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Tue, 28 Apr 2026 18:55:51 -0400 Subject: [PATCH] Build Linux release artifacts for generic CPU targets --- .github/workflows/release-linux.yml | 54 ++++++++++++++--------------- nix/tests-distro.nix | 4 +-- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/release-linux.yml b/.github/workflows/release-linux.yml index 102c7a317a3..731dd3c9f06 100644 --- a/.github/workflows/release-linux.yml +++ b/.github/workflows/release-linux.yml @@ -24,8 +24,8 @@ jobs: fail-fast: false matrix: arch: - - { deb: amd64, tar: amd64, runner: ubuntu-latest } - - { deb: arm64, tar: arm64, runner: ubuntu-24.04-arm } + - { deb: amd64, tar: amd64, runner: ubuntu-latest, zig: x86_64-linux-gnu } + - { deb: arm64, tar: arm64, runner: ubuntu-24.04-arm, zig: aarch64-linux-gnu } outputs: # Both matrix legs compute the same value, so this is safe — GHA # picks an arbitrary leg's value, and downstream jobs only care that @@ -69,28 +69,28 @@ jobs: - name: Build vendor libraries run: | - cd vendor/ctap2 && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-crypto && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-keychain && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-notify && zig build -Doptimize=ReleaseFast && cd ../.. + cd vendor/ctap2 && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-crypto && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-keychain && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-notify && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. - name: Build libghostty run: | bash scripts/retry-zig-build.sh \ --label "libghostty" \ --working-directory ghostty \ - -- zig build -Dapp-runtime=none -Drenderer=opengl -Doptimize=ReleaseFast + -- zig build -Dtarget=${{ matrix.arch.zig }} -Dapp-runtime=none -Drenderer=opengl -Doptimize=ReleaseFast bash scripts/ghostty-compat-symlinks.sh - name: Build cmux-linux run: | cd cmux-linux - zig build -Doptimize=ReleaseFast + zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast - name: Build cmuxd run: | if [ -d cmuxd ]; then - cd cmuxd && zig build -Doptimize=ReleaseFast + cd cmuxd && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast fi - name: Assemble DEB package @@ -234,8 +234,8 @@ jobs: fail-fast: false matrix: arch: - - { rpm: x86_64, runner: ubuntu-latest } - - { rpm: aarch64, runner: ubuntu-24.04-arm } + - { rpm: x86_64, runner: ubuntu-latest, zig: x86_64-linux-gnu } + - { rpm: aarch64, runner: ubuntu-24.04-arm, zig: aarch64-linux-gnu } steps: - name: Install build dependencies run: | @@ -274,28 +274,28 @@ jobs: - name: Build vendor libraries run: | - cd vendor/ctap2 && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-crypto && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-keychain && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-notify && zig build -Doptimize=ReleaseFast && cd ../.. + cd vendor/ctap2 && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-crypto && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-keychain && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-notify && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. - name: Build libghostty run: | bash scripts/retry-zig-build.sh \ --label "libghostty" \ --working-directory ghostty \ - -- zig build -Dapp-runtime=none -Drenderer=opengl -Doptimize=ReleaseFast + -- zig build -Dtarget=${{ matrix.arch.zig }} -Dapp-runtime=none -Drenderer=opengl -Doptimize=ReleaseFast bash scripts/ghostty-compat-symlinks.sh - name: Build cmux-linux run: | cd cmux-linux - zig build -Doptimize=ReleaseFast + zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast - name: Build cmuxd run: | if [ -d cmuxd ]; then - cd cmuxd && zig build -Doptimize=ReleaseFast + cd cmuxd && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast fi - name: Assemble RPM package @@ -380,8 +380,8 @@ jobs: fail-fast: false matrix: arch: - - { rpm: x86_64, runner: ubuntu-latest } - - { rpm: aarch64, runner: ubuntu-24.04-arm } + - { rpm: x86_64, runner: ubuntu-latest, zig: x86_64-linux-gnu } + - { rpm: aarch64, runner: ubuntu-24.04-arm, zig: aarch64-linux-gnu } steps: - name: Install build dependencies run: | @@ -422,28 +422,28 @@ jobs: - name: Build vendor libraries run: | - cd vendor/ctap2 && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-crypto && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-keychain && zig build -Doptimize=ReleaseFast && cd ../.. - cd vendor/zig-notify && zig build -Doptimize=ReleaseFast && cd ../.. + cd vendor/ctap2 && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-crypto && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-keychain && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. + cd vendor/zig-notify && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast && cd ../.. - name: Build libghostty run: | bash scripts/retry-zig-build.sh \ --label "libghostty" \ --working-directory ghostty \ - -- zig build -Dapp-runtime=none -Drenderer=opengl -Doptimize=ReleaseFast + -- zig build -Dtarget=${{ matrix.arch.zig }} -Dapp-runtime=none -Drenderer=opengl -Doptimize=ReleaseFast bash scripts/ghostty-compat-symlinks.sh - name: Build cmux-linux (terminal-first) run: | cd cmux-linux - zig build -Doptimize=ReleaseFast -Dno-webkit=true + zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast -Dno-webkit=true - name: Build cmuxd run: | if [ -d cmuxd ]; then - cd cmuxd && zig build -Doptimize=ReleaseFast + cd cmuxd && zig build -Dtarget=${{ matrix.arch.zig }} -Doptimize=ReleaseFast fi - name: Assemble RPM package diff --git a/nix/tests-distro.nix b/nix/tests-distro.nix index e7d49dc1304..968d010990e 100644 --- a/nix/tests-distro.nix +++ b/nix/tests-distro.nix @@ -140,7 +140,7 @@ # Used by all distro tests after package install. socketPingTest = '' # Verify binary runs - vm.succeed("cmux --version 2>&1 || cmux --help 2>&1 || echo 'binary runs'") + vm.succeed("cmux --version 2>&1 || cmux --help 2>&1") # Verify runtime library deps resolve cleanly after package install vm.succeed(""" @@ -160,7 +160,7 @@ if [ "''${VERSION_ID:-}" = "10.1" ]; then for repo in /etc/yum.repos.d/*.repo; do [ -f "$repo" ] || continue - sed -i -E 's|(https?://(dl|download)\\.rockylinux\\.org)/vault/rocky/|\\1/pub/rocky/|g' "$repo" + sed -i -E 's#(https?://(dl|download)\\.rockylinux\\.org)/vault/rocky/#\\1/pub/rocky/#g' "$repo" done dnf clean all grep -R "rocky/.*/BaseOS" /etc/yum.repos.d || true