Skip to content

Doc link fix

Doc link fix #96

Workflow file for this run

name: Publish to PyPI
on:
pull_request:
release:
types: [published]
push:
tags: ["v*"]
concurrency:
group: publish-pypi-{{ github.sha }}
cancel-in-progress: false
jobs:
build-packages:
name: Build packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get tags
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
shell: bash
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build package
run: |
python -m pip install --upgrade pip wheel setuptools setuptools_scm build twine
python -m build --sdist --wheel . --outdir dist
- name: Check files
run: |
ls dist
shell: bash
- name: Test wheels
run: |
pushd dist
python -m pip install ultraplot*.whl
version=$(python -c "import ultraplot; print(ultraplot.__version__)")
echo "Version: $version"
if [[ "$version" == "0."* ]]; then
echo "Version is not set correctly!"
exit 1
fi
python -m twine check *
popd
shell: bash
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist-${{ github.sha }}-${{ github.run_id }}-${{ github.run_number }}
path: dist/*
if-no-files-found: error
publish-pypi-test:
name: Publish to TestPyPI
needs: build-packages
if: github.event_name != 'pull_request'
environment:
name: test
url: https://test.pypi.org/project/ultraplot/
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: dist-${{ github.sha }}-${{ github.run_id }}-${{ github.run_number }}
path: dist
- name: Check files
run: |
ls dist
shell: bash
- name: Publish to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
verbose: true
# releases generate both release and tag events so
# we get a race condition if we don't skip existing
skip-existing: ${{ (github.event_name == 'release' || github.event_name == 'push') && 'true' || 'false' }}
publish-pypi:
name: Publish to PyPI
needs: publish-pypi-test
environment:
name: prod
url: https://pypi.org/project/ultraplot/
runs-on: ubuntu-latest
if: github.event_name == 'release'
permissions:
id-token: write
contents: read
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: dist-${{ github.sha }}-${{ github.run_id }}-${{ github.run_number }}
path: dist
- name: Check files
run: |
ls dist
shell: bash
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: true