name: Build Releases
on:
push:
tags:
- v*
env:
CARGO_TERM_COLOR: always
jobs:
build-linux:
runs-on: ubuntu-latest
env:
RUST_BACKTRACE: full
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
steps:
- uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
target: ${{ matrix.target }}
toolchain: nightly
default: true
override: true
- name: Install cross
run: cargo install cross
- name: Build ${{ matrix.target }}
timeout-minutes: 15
run: |
mkdir -p ./build/release
export RUSTFLAGS="-C link-arg=-lgcc -Clink-arg=-static-libgcc"
cross build --target ${{ matrix.target }} -r -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort
cp ./target/${{ matrix.target }}/release/bimc ./build/release/bimc-${{ matrix.target }}
cp ./target/${{ matrix.target }}/release/bim ./build/release/bim-${{ matrix.target }}
- name: UPX
uses: crazy-max/ghaction-upx@v2
with:
version: latest
files: |
./build/release/bimc-${{ matrix.target }}
./build/release/bim-${{ matrix.target }}
args: --best --lzma
- name: sha256
run: |
cd ./build/release
shasum -a 256 bimc-${{ matrix.target }} > bimc-${{ matrix.target }}.sha256
shasum -a 256 bim-${{ matrix.target }} > bim-${{ matrix.target }}.sha256
- name: Upload Github Assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: build/release/*
prerelease: ${{ contains(github.ref, '-') }}
build-windows:
runs-on: windows-latest
env:
RUST_BACKTRACE: full
steps:
- uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
default: true
override: true
- name: Build
timeout-minutes: 15
run: |
cargo build -r
mkdir -p ./build/release
cp ./target/release/bimc.exe ./build/release/bimc.exe
cp ./target/release/bim.exe ./build/release/bim.exe
cd ./build/release
Get-FileHash bimc.exe | Format-List > bimc.exe.sha256
Get-FileHash bim.exe | Format-List > bim.exe.sha256
- name: Upload Github Assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: build/release/*
prerelease: ${{ contains(github.ref, '-') }}
build-macos:
runs-on: macos-latest
env:
RUST_BACKTRACE: full
steps:
- uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
default: true
override: true
- name: Build
timeout-minutes: 120
run: |
cargo build -r
mkdir -p ./build/release
cp ./target/release/bim ./build/release/bim-macos
cp ./target/release/bimc ./build/release/bimc-macos
cd ./build/release
shasum -a 256 bim-macos > bim-macos.sha256
shasum -a 256 bimc-macos > bimc-macos.sha256
- name: Upload Github Assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: build/release/*
prerelease: ${{ contains(github.ref, '-') }}