navette-browser 1.7.0

The browser for agents — one tiny binary driving the WebView your OS already ships.
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"