# This workflows will build and upload a Python Package using Twine when a release is published
# Conda-forge bot will pick up new PyPI version and automatically create new version
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries

name: python-package

on:
  release:
    types: [published]

jobs:
  deploy:
    strategy:
      matrix:
        os: ['ubuntu-latest']
        python-version: [3.10]
    runs-on: ${{ matrix.os }}
    environment: package
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      # - name: Cache conda
      #   uses: actions/cache@v3
      #   with:
      #     path: ~/conda_pkgs_dir
      #     key: conda-${{ matrix.os }}-python-${{ matrix.python-version }}-${{ hashFiles('environment.yml') }}
      # - name: Setup Miniconda
      #   uses: conda-incubator/setup-miniconda@v2
      #   with:
      #     auto-update-conda: true
      #     auto-activate-base: false
      #     activate-environment: hcrystalball
      #     python-version: ${{ matrix.python-version }}
      #     use-only-tar-bz2: true
      - name: Install from source
        # This is required for the pre-commit tests
        shell: pwsh
        run: pip install .
      # - name: Conda list
      #   shell: pwsh
      #   run: conda list
      - name: Build
        shell: pwsh
        run: |
          pip install twine
          python setup.py sdist bdist_wheel
      - name: Publish to PyPI
        env:
          TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
          TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
        shell: pwsh
        run: twine upload dist/*
