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
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::'
|
|
|