Files
scribe/.github/workflows/pypi.yml
T
Schmieder, Jacob 54372aeb31 added steps
2024-05-15 08:31:32 +00:00

64 lines
1.9 KiB
YAML

name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
on:
push:
branches:
- pyproject.toml # test branch for testing the workflow
tags:
- v* # Push tags to trigger the workflow
workflow_dispatch:
inputs:
test:
description: "Push to TestPyPI not PyPI"
default: true
type: boolean
jobs:
Build-and-publish-to-Test-PyPI:
name: Build and Publish to Test PyPI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Poetry 📦
if: ${{ !(startsWith(github.ref, 'refs/tags')) || (inputs.test == true) }}
uses: JRubics/poetry-publish@v2.0
with:
plugins: "poetry-dynamic-versioning"
repository_name: "scraibe"
repository_url: "https://test.pypi.org/legacy/"
test-install:
name: Test Installation from TestPyPI
needs: Build-and-publish-to-Test-PyPI
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install package
run: |
python3 -m pip install setuptools
python3 -m pip install --index-url https://test.pypi.org/simple/ scraibe
publish-to-pypi:
name: Conditional Publish to PyPI or Dev Repository
needs: [build, test-install]
runs-on: ubuntu-latest
environment:
name: pypi
url: env.PyPI_URL
permissions:
id-token: write
steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI or Dev Repository
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: ${{ github.ref == 'refs/heads/main' && 'env.PyPI_URL' || ' env.PyPI_DEV_URL' }}
password: ${{ secrets.PYPI_API_TOKEN}}