name: Deploy

on:
  push:
    tags:
      - v[0-9]+.[0-9]+.[0-9]+

jobs:
  release:
    name: 'Create Release'
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Update CHANGELOG
        id: changelog
        uses: Requarks/changelog-action@v1
        with:
          token: ${{ github.token }}
          tag: ${{ github.ref_name }}
          excludeTypes: 'build,chore,style'

      - name: Create release
        uses: ncipollo/release-action@v1
        with:
          allowUpdates: true
          body: ${{ steps.changelog.outputs.changes }}

      - name: Commit CHANGELOG.md
        uses: stefanzweifel/git-auto-commit-action@v4
        with:
          branch: master
          commit_message: 'chore: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]'
          file_pattern: CHANGELOG.md


  publish-crate:
    name: 'Publish Crate'
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true

      - name: Install build deps
        run: ./.github/scripts/ubuntu_setup.sh

      - name: Publish crate
        uses: katyo/publish-crates@v1
        with:
          registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
