name: Release

on:
  push:
    tags:
      - '*.*.*'

jobs:
  Release:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Get tag
        id: tag
        run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/}

      - name: Set up Python 3.9
        uses: actions/setup-python@v2
        with:
          python-version: "3.9"

      - name: Install Poetry
        run: python install-poetry.py -y

      - name: Update PATH
        run: echo "$HOME/.local/bin" >> $GITHUB_PATH

      - name: Build project for distribution
        run: poetry build

      - name: Check Version
        id: check-version
        run: |
          [[ "$(poetry version --short)" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] \
            || echo ::set-output name=prerelease::true

      - name: Create Release
        uses: ncipollo/release-action@v1
        with:
          artifacts: "dist/*"
          token: ${{ secrets.GITHUB_TOKEN }}
          draft: false
          prerelease: steps.check-version.outputs.prerelease == 'true'

      - name: Publish to PyPI
        env:
          POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
        run: poetry publish
