You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

97 lines
2.7 KiB

# This workflow will upload a Python Package to PyPI when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Upload Python Package
on:
workflow_dispatch:
inputs:
pkg_name:
description: the name of the project
type: string
required: true
pkg_folder:
description: the folder containing the pyproject.toml file
type: string
required: true
workflow_call:
inputs:
pkg_name:
description: the name of the project
type: string
required: true
pkg_folder:
description: the folder containing the pyproject.toml file
type: string
required: true
# release:
# types: [published]
permissions:
contents: read
jobs:
release-build:
# runs-on: ubuntu-latest
runs-on: self-hosted
defaults:
run:
working-directory: ${{ inputs.pkg_folder }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Build release distributions
run: |
# NOTE: put your own distribution build steps here.
echo '::group::Installing Build'
python -m pip install build
echo '::endgroup::'
echo '::group::Installing Build the package'
python -m build
echo '::endgroup::'
- name: Upload distributions
uses: actions/upload-artifact@v4
with:
name: release-dist-${{ inputs.pkg_name }}
path: ${{ inputs.pkg_folder }}/dist/
pypi-publish:
runs-on: self-hosted
needs:
- release-build
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
steps:
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Retrieve release distributions
uses: actions/download-artifact@v4
with:
name: release-dist-${{ inputs.pkg_name }}
path: dist/
- name: check
shell: bash
run: |
ls -laR dist
- name: Publish
run: |
echo '::group::Installing Twine'
python -m pip install twine
echo '::endgroup::'
echo '::group::Deploy The Package'
python -m twine upload --verbose -u ${{ secrets.PYPI_USER }} -p ${{ secrets.PYPI_TOKEN }} dist/*
echo '::endgroup::'