diff --git a/.github/workflows/Publish_pyHAMS.yml b/.github/workflows/Publish_pyHAMS.yml new file mode 100644 index 0000000..f62d901 --- /dev/null +++ b/.github/workflows/Publish_pyHAMS.yml @@ -0,0 +1,73 @@ +name: Build and upload to PyPI + +# Build on every branch push, tag push, and pull request change: +#on: [push, pull_request] +# Alternatively, to publish when a (published) GitHub Release is created, use the following: +on: + release: + types: + - published + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + + steps: + - name: Setup GNU Fortran + # if: false == contains( matrix.os, 'windows') + uses: awvwgk/setup-fortran@v1 #modflowpy/install-intelfortran-action@v1 # + + - name: Checkout + uses: actions/checkout@v4 + + - name: Build wheels + uses: pypa/cibuildwheel@v2.16.2 + + - uses: actions/upload-artifact@v4 + with: + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} + path: ./wheelhouse/*.whl + + build_sdist: + name: Build source distribution + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Build sdist + run: pipx run build --sdist + + - uses: actions/upload-artifact@v4 + with: + name: cibw-sdist + path: dist/*.tar.gz + + upload_pypi: + needs: [build_wheels, build_sdist] + runs-on: ubuntu-latest + environment: pypi + permissions: + id-token: write # IMPORTANT: this permission is mandatory for trusted publishing + # upload to PyPI on every tag starting with 'v' + #if: github.event_name == 'push' && startsWith(github.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@v4 + with: + # unpacks all CIBW artifacts into dist/ + pattern: cibw-* + path: dist + merge-multiple: true + + - name: Upload to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + #with: + # user: __token__ + # password: ${{ secrets.pypi_password }} + # # To test: repository_url: https://test.pypi.org/legacy/ + diff --git a/.gitignore b/.gitignore index 35e2455..10a3c25 100644 --- a/.gitignore +++ b/.gitignore @@ -131,3 +131,6 @@ dmypy.json # Pyre type checker .pyre/ + +# Emacs +*~