Upload Python Package #25
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflows will upload a Python Package using Twine when a release is created | |
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries | |
name: Upload Python Package | |
on: | |
release: | |
types: [published] | |
jobs: | |
deploy: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.7, 3.8, 3.9, '3.10', '3.11', '3.12'] | |
os: [ubuntu-latest, macos-14, macos-13, windows-latest] | |
exclude: | |
- os: ubuntu-latest | |
python-version: '3.12' | |
- os: macos-14 | |
python-version: 3.7 | |
- os: macos-14 | |
python-version: 3.8 | |
- os: macos-14 | |
python-version: 3.9 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version}} | |
- name: Display Python version | |
run: python3 -c "import sys; print(sys.version)" | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
pip3 install setuptools wheel twine | |
- name: Install APT On Linux | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update -qq -y | |
sudo apt-get install -qq -y libglu1-mesa libspatialindex6 build-essential | |
- name: Install Brew On Mac | |
if: matrix.os == 'macos-latest' | |
run: | | |
brew install geos | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
pip3 install --user -r requirements.txt | |
pip3 install --upgrade cython | |
- name: Build | |
run: | | |
python3 setup.py bdist_wheel | |
- name: Publish (Windows) | |
env: | |
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
if: matrix.os == 'windows-latest' | |
run: | | |
twine upload dist/* | |
- name: Publish (Mac OS) | |
env: | |
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
if: matrix.os == 'macos-latest' | |
run: | | |
python3 -m twine upload dist/* | |