USDA-ARS-NWRC/awsm

View on GitHub
.github/workflows/new_pypi_release.yml

Summary

Maintainability
Test Coverage
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Release to Pypi

# Run on a published release and push to Pypi
on: 
  release: 
    types: [published]

jobs:

  build_dist:
    name: Build source distribution
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - uses: actions/setup-python@v2
        name: Install Python
        with:
          python-version: '3.8'

      - name: Install dependencies
        run: |
          python3 -m pip install --upgrade pip wheel cython
          python3 -m pip install -r requirements.txt
          python3 -m pip install git+https://github.com/USDA-ARS-NWRC/pysnobal@master#egg=pysnobal

      - name: Build dist
        run: python setup.py sdist --formats=gztar

      - name: Build wheel
        run: python3 setup.py bdist_wheel

      - uses: actions/upload-artifact@v2
        with:
          path: dist/*.tar.gz

  upload_pypi:
    needs: [build_dist]
    runs-on: ubuntu-latest
    # upload to PyPI on every tag starting with 'v'
    # if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
    # alternatively, to publish when a GitHub Release is created, use the following rule:
    if: github.event_name == 'release' && github.event.action == 'published'
    steps:
      - uses: actions/download-artifact@v2
        with:
          name: artifact
          path: dist

      - uses: pypa/gh-action-pypi-publish@master
        with:
          user: __token__
          password: ${{ secrets.pypi_password }}
          # To test: repository_url: https://test.pypi.org/legacy/