Merge pull request #1136 from BoboTiG/fix-ci-release-artifacts

fix(ci): Store release assets to the GitHub release
This commit is contained in:
Simone Margaritelli 2025-07-12 11:43:06 +02:00 committed by GitHub
commit 3440e9999a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -8,35 +8,37 @@ on:
jobs: jobs:
build: build:
runs-on: ${{ matrix.os }} name: ${{ matrix.os.pretty }} ${{ matrix.arch }}
runs-on: ${{ matrix.os.runs-on }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest, macos-latest, windows-latest] os:
go-version: ['1.22.x'] - name: darwin
include: runs-on: [macos-latest]
- os: ubuntu-latest pretty: 🍎 macOS
arch: amd64 - name: linux
target_os: linux runs-on: [ubuntu-latest]
target_arch: amd64 pretty: 🐧 Linux
- os: ubuntu-latest - name: windows
arch: arm64 runs-on: [windows-latest]
target_os: linux pretty: 🪟 Windows
target_arch: aarch64
- os: macos-latest
arch: arm64
target_os: darwin
target_arch: arm64
- os: windows-latest
arch: amd64
target_os: windows
target_arch: amd64
output: bettercap.exe output: bettercap.exe
arch: [amd64, arm64]
go: [1.22.x]
exclude:
- os:
name: darwin
arch: amd64
# Linux ARM64 images are not yet publicly available (https://github.com/actions/runner-images)
- os:
name: linux
arch: arm64
- os:
name: windows
arch: arm64
env: env:
TARGET_OS: ${{ matrix.target_os }} OUTPUT: ${{ matrix.os.output || 'bettercap' }}
TARGET_ARCH: ${{ matrix.target_arch }}
GO_VERSION: ${{ matrix.go-version }}
OUTPUT: ${{ matrix.output || 'bettercap' }}
steps: steps:
- name: Checkout Code - name: Checkout Code
@ -45,19 +47,18 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v2
with: with:
go-version: ${{ matrix.go-version }} go-version: ${{ matrix.go }}
- name: Install Dependencies - name: Install Dependencies
if: ${{ matrix.os == 'ubuntu-latest' }} if: ${{ matrix.os.name == 'linux' }}
run: sudo apt-get update && sudo apt-get install -y p7zip-full libpcap-dev libnetfilter-queue-dev libusb-1.0-0-dev run: sudo apt-get update && sudo apt-get install -y p7zip-full libpcap-dev libnetfilter-queue-dev libusb-1.0-0-dev
- name: Install Dependencies (macOS) - name: Install Dependencies (macOS)
if: ${{ matrix.os == 'macos-latest' }} if: ${{ matrix.os.name == 'macos' }}
run: brew install libpcap libusb p7zip run: brew install libpcap libusb p7zip
- name: Install libusb via mingw (Windows) - name: Install libusb via mingw (Windows)
if: ${{ matrix.os == 'windows-latest' }} if: ${{ matrix.os.name == 'windows' }}
uses: msys2/setup-msys2@v2 uses: msys2/setup-msys2@v2
with: with:
install: |- install: |-
@ -65,7 +66,7 @@ jobs:
mingw64/mingw-w64-x86_64-pkg-config mingw64/mingw-w64-x86_64-pkg-config
- name: Install other Dependencies (Windows) - name: Install other Dependencies (Windows)
if: ${{ matrix.os == 'windows-latest' }} if: ${{ matrix.os.name == 'windows' }}
run: | run: |
choco install openssl.light -y choco install openssl.light -y
choco install make -y choco install make -y
@ -81,25 +82,36 @@ jobs:
- name: Verify Build - name: Verify Build
run: | run: |
file "${{ env.OUTPUT }}" file "${{ env.OUTPUT }}"
openssl dgst -sha256 "${{ env.OUTPUT }}" | tee bettercap_${{ matrix.target_os }}_${{ matrix.target_arch }}_${{ env.VERSION }}.sha256 openssl dgst -sha256 "${{ env.OUTPUT }}" | tee bettercap_${{ matrix.os.name }}_${{ matrix.arch }}.sha256
7z a "bettercap_${{ matrix.target_os }}_${{ matrix.target_arch }}_${{ env.VERSION }}.zip" "${{ env.OUTPUT }}" "bettercap_${{ matrix.target_os }}_${{ matrix.target_arch }}_${{ env.VERSION }}.sha256" 7z a "bettercap_${{ matrix.os.name }}_${{ matrix.arch }}.zip" "${{ env.OUTPUT }}" "bettercap_${{ matrix.os.name }}_${{ matrix.arch }}.sha256"
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts-${{ matrix.os.name }}-${{ matrix.arch }}
path: |
bettercap_*.zip
bettercap_*.sha256
deploy: deploy:
needs: [build] needs: [build]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
name: Release name: Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Code - name: Download Artifacts
uses: actions/checkout@v2 uses: actions/download-artifact@v4
with: with:
submodules: true pattern: release-artifacts-*
merge-multiple: true
path: dist/
- name: Release Assets
run: ls -l dist
- name: Upload Release Assets - name: Upload Release Assets
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v2
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
with: with:
files: | files: dist/bettercap_*
bettercap_*.zip
bettercap_*.sha256
env: env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}