cornelli 1.4.2

Write to your future self.
Documentation
name: Release Builds

on:
  release:
    types: [published]

jobs:
  build-win:
    runs-on: windows-latest

    env:
      FILE_NAME: target/release/cornelli-win-latest.zip

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Build
        run: cargo build --release --quiet --locked

      - name: Compress binary
        run: |
          powershell -Command "Compress-Archive -Path target/release/nelli.exe -DestinationPath $env:FILE_NAME"

      - name: Upload compressed binary to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.FILE_NAME }}
          tag: ${{ github.ref }}
          overwrite: true

  build-unix:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]

    runs-on: ${{ matrix.os }}

    env:
      FILE_NAME: target/release/cornelli-${{ matrix.os }}.tar.gz

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Build
        run: cargo build --release --quiet --locked

      - name: Compress binary
        run: tar -czf ${{ env.FILE_NAME }} -C target/release nelli

      - name: Upload compressed binary to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.FILE_NAME }}
          tag: ${{ github.ref }}
          overwrite: true

  publish:
    needs: [build-win, build-unix]
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Publish using cargo
        run: cargo publish --token ${{ secrets.CRATES_TOKEN }} --allow-dirty