name: Release
on:
release:
types: [published]
permissions:
contents: write
env:
CARGO_TERM_COLOR: always
GH_TOKEN: ${{ github.token }}
jobs:
release:
strategy:
matrix:
platform:
- os_name: Windows-x86_64
os: windows-latest
target: x86_64-pc-windows-msvc
bin: gbscraper.exe
final: gbscraper-windows-x86_64.zip
- os_name: Windows-i686
os: windows-latest
target: i686-pc-windows-msvc
bin: gbscraper.exe
final: gbscraper-windows-i686.zip
- os_name: macOS-x86_64
os: macOS-latest
target: x86_64-apple-darwin
bin: gbscraper
final: gbscraper-apple-darwin-x86_64.tar.gz
- os_name: macOS-aarch64
os: macOS-latest
target: aarch64-apple-darwin
bin: gbscraper
final: gbscraper-apple-darwin-aarch64.tar.gz
- os_name: Linux-x86_64
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
bin: gbscraper
final: gbscraper-linux-x86_64.tar.gz
runs-on: ${{ matrix.platform.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build - ${{ matrix.platform.os_name }}
run: |
rustup target add ${{matrix.platform.target}}
cargo build --release --target ${{ matrix.platform.target }}
- name: Archive prep
run: |
mkdir publish
cp README.md publish
cp LICENSE-APACHE publish
cp LICENSE-MIT publish
cp attribution.txt publish
mv target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} publish
- name: Archive (.zip)
if: matrix.platform.os == 'windows-latest'
run: |
cd publish
7z a ../${{ matrix.platform.final }} *
- name: Archive (.tar.gz)
if: matrix.platform.os != 'windows-latest'
run: |
cd publish
tar cvzf ../${{ matrix.platform.final }} *
- name: Release
run:
gh release upload ${{ github.event.release.tag_name }} ${{ matrix.platform.final }}