name: Release

on:
  push:
    tags: ['v*']

defaults:
  run:
    shell: bash

jobs:
  draft-release:
    name: Create draft release
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: ./.github/actions/setup
        with:
          python-version: "3.9"
          venv-id: "release"
          poetry-dependency-install-flags: "--all-extras"
      - name: Add version to environment
        run: |
          PROJECT_VERSION=$(poetry version --short)
          echo "PROJECT_VERSION=$PROJECT_VERSION" >> $GITHUB_ENV
      - name: Run tests
        run: |
          poetry run pytest -r a -v src tests --doctest-modules
      - name: Build package
        run: |
          poetry build --no-interaction
      - name: Generate Release Notes
        run: |
          git log $(git describe --tags --abbrev=0 HEAD^)..HEAD --pretty='format:* %h %s' --no-merges >> ".github/release_template.md"
      - name: Create Release Draft
        uses: softprops/action-gh-release@v1
        with:
          body_path: ".github/release_template.md"
          token: "${{ secrets.PERSONAL_ACCESS_TOKEN }}"
          draft: true
          files: |
            dist/unfccc_ghg_data-${{ env.PROJECT_VERSION }}-py3-none-any.whl
            dist/unfccc_ghg_data-${{ env.PROJECT_VERSION }}.tar.gz