Skip to content

Publish PyGeoweaver Python 🐍 distributions 📦 to PyPI and TestPyPI #167

Publish PyGeoweaver Python 🐍 distributions 📦 to PyPI and TestPyPI

Publish PyGeoweaver Python 🐍 distributions 📦 to PyPI and TestPyPI #167

name: Publish PyGeoweaver Python 🐍 distributions 📦 to PyPI and TestPyPI
on:
workflow_run:
workflows: ["Run Tests"]
types:
- completed
push:
tags:
- 'v*.*.*' # Trigger the workflow for version tags like 'v1.0.0'
release:
types: [published] # Trigger the workflow when a release is published
jobs:
test-installation:
name: Test Python Installation for 3.8, 3.9, 3.10, 3.11
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Package in Editable Mode
run: |
python -m pip install --upgrade pip
python -m pip install -e .
- name: Test PyGeoweaver
run: |
gw start
exit_code=$?
if [ $exit_code -eq 0 ]; then
echo "PyGeoweaver started successfully"
else
echo "Error: PyGeoweaver failed to start"
exit $exit_code
fi
build-n-publish:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
needs: test-installation
name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install pypa/build
run: >-
python -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: >-
python -m
build
--sdist
--wheel
--outdir dist/
- name: Check GitHub ref
run: echo ${{ github.ref }}
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}