name: Publish to APT & Homebrew

on:
  release:
    types: [released]

jobs:
  check-version:
    name: Check the version validity
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Check release validity
        run: bash .github/scripts/check-release.sh

  debian:
    name: Publish debian packagge
    runs-on: ubuntu-latest
    needs: check-version
    container:
      # Use ubuntu-22.04 to compile with glibc 2.35
      image: ubuntu:22.04
    steps:
      - name: Install needed dependencies
        run: |
          apt-get update && apt-get install -y curl
          apt-get install build-essential -y
      - uses: dtolnay/rust-toolchain@1.81
      - name: Install cargo-deb
        run: cargo install cargo-deb
      - uses: actions/checkout@v3
      - name: Build deb package
        run: cargo deb -p meilisearch -o target/debian/meilisearch.deb
      - name: Upload debian pkg to release
        uses: svenstaro/upload-release-action@2.7.0
        with:
          repo_token: ${{ secrets.MEILI_BOT_GH_PAT }}
          file: target/debian/meilisearch.deb
          asset_name: meilisearch.deb
          tag: ${{ github.ref }}
      - name: Upload debian pkg to apt repository
        run: curl -F package=@target/debian/meilisearch.deb https://${{ secrets.GEMFURY_PUSH_TOKEN }}@push.fury.io/meilisearch/

  homebrew:
    name: Bump Homebrew formula
    runs-on: ubuntu-latest
    needs: check-version
    steps:
      - name: Create PR to Homebrew
        uses: mislav/bump-homebrew-formula-action@v3
        with:
          formula-name: meilisearch
          formula-path: Formula/m/meilisearch.rb
        env:
          COMMITTER_TOKEN: ${{ secrets.HOMEBREW_COMMITTER_TOKEN }}