Skip to content

v0.5.0

v0.5.0 #11

Workflow file for this run

name: Release
on:
release:
types: [published]
jobs:
build:
name: Build ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
name: [linux, windows, macOS]
include:
- name: linux
target: x86_64-unknown-linux-musl
os: ubuntu-latest
- name: windows
target: x86_64-pc-windows-msvc
os: windows-latest
- name: macOS
target: x86_64-apple-darwin
os: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install packages (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends musl-tools
- name: Build
run: cargo build --release --target ${{ matrix.target }}
- name: Strip release binary
if: runner.os == 'Linux' || runner.os == 'macOS'
run: strip "target/${{ matrix.target }}/release/modiom"
- name: Package
id: package
shell: bash
run: |
version=${GITHUB_REF#refs/tags/}
staging="modiom-$version-${{ matrix.target }}"
mkdir -p "$staging"
cp {README.md,LICENSE-APACHE,LICENSE-MIT} "$staging/"
if [ "${{ runner.os }}" = "Windows" ]; then
cp "target/${{ matrix.target }}/release/modiom.exe" "$staging/"
7z a "$staging.zip" "$staging"
echo "ASSET=$staging.zip" >> $GITHUB_OUTPUT
else
cp "target/${{ matrix.target }}/release/modiom" "$staging/"
tar czf "$staging.tar.gz" "$staging"
echo "ASSET=$staging.tar.gz" >> $GITHUB_OUTPUT
fi
- name: Upload
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_name: ${{ steps.package.outputs.ASSET }}
asset_path: ${{ steps.package.outputs.ASSET }}
asset_content_type: application/octet-stream