Skip to content

Add example of publishing PyPI package to Local Python repository #45

Add example of publishing PyPI package to Local Python repository

Add example of publishing PyPI package to Local Python repository #45

name: python-package-manager-demo
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
strategy:
matrix:
os:
- {os: "ubuntu-22.04", distro: "jammy"}
- {os: "ubuntu-20.04", distro: "focal" }
- {os: "windows-latest", distro: "windows"}
package-manager:
- {endpoint: "https://solo.rstudiopm.com", token: "PACKAGEMANAGER_TOKEN_PYTHON_SOLO"}
- {endpoint: "https://s3.rstudiopm.com", token: "PACKAGEMANAGER_TOKEN_PYTHON_S3"}
- {endpoint: "https://cluster.rstudiopm.com", token: "PACKAGEMANAGER_TOKEN_PYTHON_CLUSTER"}
runs-on: ${{ matrix.os.os }}
steps:
- uses: actions/checkout@v3
- name: Setup Python 3
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Build Python distributions
run: |
source_dir=$(mktemp -d)
python3 -m pip install --upgrade build
pip install --index-url https://packagemanager.posit.co/pypi/latest/simple twine
(cd $source_dir; python3 -m build --outdir . $OLDPWD/python-package-manager-demo)
echo "DIST_DIR=$source_dir" >> $GITHUB_ENV
shell: bash
- name: Upload Python distributions
if: github.ref == 'refs/heads/main'
env:
TWINE_REPOSITORY_URL: ${{ matrix.package-manager.endpoint }}/upload/pypi/local-python-api
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets[matrix.package-manager.token] }}
run: "twine upload --skip-existing --verbose $DIST_DIR/*"
shell: bash