From bf393c894d4f551322359c3b346b612dcd9e29ab Mon Sep 17 00:00:00 2001 From: richardsondev Date: Sun, 10 May 2026 19:47:03 -0700 Subject: [PATCH 1/4] Add .deb package generation for Linux releases Adds debArch to Linux matrix entries and a dpkg-deb build step that creates .deb packages for each Linux architecture on release. Packages install the binary to /usr/local/bin/. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/release.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4c03407..7b22578 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -137,3 +137,30 @@ jobs: with: name: http_trace_server-${{ matrix.target.testTarget }}-${{ matrix.target.rustTarget }} path: ./publish/${{ matrix.target.testTarget }} + + - name: Build .deb package + if: ${{ github.event_name == 'release' && matrix.target.debArch != '' }} + run: | + mkdir -p dpkg/DEBIAN dpkg/usr/local/bin + cp ./target/${{ matrix.target.rustTarget }}/release/http_trace dpkg/usr/local/bin/ + chmod 755 dpkg/usr/local/bin/http_trace + VERSION="${{ github.ref_name }}" + VERSION="${VERSION#v}" + cat > dpkg/DEBIAN/control << EOF + Package: http_trace + Version: $VERSION + Architecture: ${{ matrix.target.debArch }} + Maintainer: richardsondev + Description: HTTP request tracing tool + EOF + sed -i 's/^ //' dpkg/DEBIAN/control + dpkg-deb --build dpkg http_trace_${VERSION}_${{ matrix.target.debArch }}.deb + + - name: Upload .deb Release Asset + if: ${{ github.event_name == 'release' && matrix.target.debArch != '' }} + env: + GH_TOKEN: ${{ github.token }} + run: | + VERSION="${{ github.ref_name }}" + VERSION="${VERSION#v}" + gh release upload ${{ github.event.release.tag_name }} ./http_trace_${VERSION}_${{ matrix.target.debArch }}.deb From 7c1dacadcca00ff9190c3d25ca08aced06ebbdee Mon Sep 17 00:00:00 2001 From: richardsondev Date: Sun, 10 May 2026 20:00:06 -0700 Subject: [PATCH 2/4] Address review feedback: /usr/bin, --clobber, env.APP_NAME - Install to /usr/bin instead of /usr/local/bin (Debian FHS policy) - Add --clobber to gh release upload for idempotent re-runs - Use env.APP_NAME where defined for consistency - Add missing debArch to matrix entries (http_trace) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/release.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b22578..a202507 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,26 +37,31 @@ jobs: # Linux - { displayName: 32-bit Linux, rustTarget: i686-unknown-linux-gnu, + debArch: i386, testTarget: '', runner: 'ubuntu-latest' } - { displayName: 64-bit Linux, rustTarget: x86_64-unknown-linux-gnu, + debArch: amd64, testTarget: linux-x64, runner: 'ubuntu-latest' } - { displayName: ARM32 ARMv6 Linux, rustTarget: arm-unknown-linux-gnueabi, + debArch: armel, testTarget: linux-arm, runner: 'ubuntu-latest' } - { displayName: ARM32 ARMv7 Linux, rustTarget: armv7-unknown-linux-gnueabihf, + debArch: armhf, testTarget: linux-arm, runner: 'ubuntu-latest' } - { displayName: ARM64 Linux, rustTarget: aarch64-unknown-linux-gnu, + debArch: arm64, testTarget: linux-arm64, runner: 'ubuntu-latest' } @@ -141,20 +146,20 @@ jobs: - name: Build .deb package if: ${{ github.event_name == 'release' && matrix.target.debArch != '' }} run: | - mkdir -p dpkg/DEBIAN dpkg/usr/local/bin - cp ./target/${{ matrix.target.rustTarget }}/release/http_trace dpkg/usr/local/bin/ - chmod 755 dpkg/usr/local/bin/http_trace + mkdir -p dpkg/DEBIAN dpkg/usr/bin + cp ./target/${{ matrix.target.rustTarget }}/release/${{ env.APP_NAME }} dpkg/usr/bin/ + chmod 755 dpkg/usr/bin/${{ env.APP_NAME }} VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" cat > dpkg/DEBIAN/control << EOF - Package: http_trace + Package: ${{ env.APP_NAME }} Version: $VERSION Architecture: ${{ matrix.target.debArch }} Maintainer: richardsondev Description: HTTP request tracing tool EOF sed -i 's/^ //' dpkg/DEBIAN/control - dpkg-deb --build dpkg http_trace_${VERSION}_${{ matrix.target.debArch }}.deb + dpkg-deb --build dpkg ${{ env.APP_NAME }}_${VERSION}_${{ matrix.target.debArch }}.deb - name: Upload .deb Release Asset if: ${{ github.event_name == 'release' && matrix.target.debArch != '' }} @@ -163,4 +168,4 @@ jobs: run: | VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" - gh release upload ${{ github.event.release.tag_name }} ./http_trace_${VERSION}_${{ matrix.target.debArch }}.deb + gh release upload ${{ github.event.release.tag_name }} --clobber ./${{ env.APP_NAME }}_${VERSION}_${{ matrix.target.debArch }}.deb From fa69284641ef432e6ea07a481331a95708f1b928 Mon Sep 17 00:00:00 2001 From: richardsondev Date: Sun, 10 May 2026 20:25:20 -0700 Subject: [PATCH 3/4] Fix CI trigger: use master branch (not main) The default branch is master, but the workflow referenced main, preventing CI from running on PRs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a202507..3c83cbe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,12 +3,12 @@ name: CI on: push: branches: - - main + - master release: types: [released] pull_request: branches: - - main + - master env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true From cdd4db9a72b3d4f569d2b2058de717c9ffea50d9 Mon Sep 17 00:00:00 2001 From: richardsondev Date: Sun, 10 May 2026 20:31:59 -0700 Subject: [PATCH 4/4] Add fail-fast: false to CI strategy Prevents Linux builds from being cancelled when a Windows build fails (e.g., due to missing nasm). Each platform builds independently. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3c83cbe..bd2d608 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,6 +21,7 @@ jobs: env: APP_NAME: http_trace strategy: + fail-fast: false matrix: target: # Windows