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-18.04 to compile with glibc 2.27
      image: ubuntu:18.04
    steps:
    - name: Install needed dependencies
      run: |
        apt-get update && apt-get install -y curl
        apt-get install build-essential -y
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true
    - 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 }}