diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4c03407..bd2d608 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 @@ -21,6 +21,7 @@ jobs: env: APP_NAME: http_trace strategy: + fail-fast: false matrix: target: # Windows @@ -37,26 +38,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' } @@ -137,3 +143,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/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: ${{ 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 ${{ env.APP_NAME }}_${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 }} --clobber ./${{ env.APP_NAME }}_${VERSION}_${{ matrix.target.debArch }}.deb