on:
  push:
    tags:
      - "v*" # Push events to matching `v*` version srings. e.g. v1.0, v20.15.10

name: Create and Publish Release

jobs:
  build:
    name: Create and Publish Release
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: recursive
          fetch-depth: 0
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.x'

      - name: Install release dependencies
        run: |
          python -m pip install --upgrade pip
          pip install --upgrade setuptools wheel twine
      - name: Get release notes
        id: release_notes
        run: |
          # By default, GH Actions checkout will only fetch a single commit.
          # For us to extract the release notes, we need to fetch the tags
          # and tag annotations as well.
          # https://github.com/actions/checkout/issues/290
          git fetch --tags --force
          TAG_NAME=${GITHUB_REF/refs\/tags\//}
          echo "$(git tag -l --format='%(contents)' $TAG_NAME)" > "${{ runner.temp }}/CHANGELOG.md"
      - name: Create GitHub release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: ${{ github.ref }}
          body_path: "${{ runner.temp }}/CHANGELOG.md"
          draft: false
          prerelease: false

      - name: Build and publish to PyPI
        env:
          TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
          TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
        run: |
          python setup.py sdist bdist_wheel
          twine upload dist/axisregistry*