name: release
on:
push:
tags: ['v*']
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
asset: navette-darwin-arm64
bin: target/release/navette
- os: windows-latest
asset: navette-windows-x64.exe
bin: target/release/navette.exe
- os: ubuntu-24.04
asset: navette-linux-x64
bin: target/release/navette
- os: ubuntu-24.04-arm
asset: navette-linux-arm64
bin: target/release/navette
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: install linux webkit deps
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev
- name: assert server.json version matches the crate
shell: bash
run: |
CRATE=$(grep -m1 '^version' Cargo.toml | sed 's/.*"\(.*\)"/\1/')
MANIFEST=$(grep -m1 '"version"' server.json | sed 's/.*"\(.*\)".*/\1/')
[ "$CRATE" = "$MANIFEST" ] || { echo "server.json version ($MANIFEST) != Cargo.toml ($CRATE) — update server.json before tagging"; exit 1; }
- run: cargo build --release
- name: attach binary to the release
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
cp "${{ matrix.bin }}" "${{ matrix.asset }}"
gh release upload "${{ github.ref_name }}" "${{ matrix.asset }}" --clobber -R "$GITHUB_REPOSITORY"