Skip to content

Commit

Permalink
modify github workflow to build packages and publish to test.pypi.org
Browse files Browse the repository at this point in the history
  • Loading branch information
dennisvang committed Jun 11, 2024
1 parent 6d25a9c commit 5d67f9a
Showing 1 changed file with 70 additions and 3 deletions.
73 changes: 70 additions & 3 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
# This workflow does the following:
#
# - run tests and lint with a variety of Python versions on windows, linux and macos [1]
# - build the tufup package [2]
# - publish to test.pypi.org [2]
# - publish to pypi.org [2]
#
# References
#
# [1]: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
# [2]: # https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/


name: Python package

Expand All @@ -11,7 +21,8 @@ on:
workflow_dispatch:

jobs:
build:
test:
# based on [1]
strategy:
fail-fast: false
matrix:
Expand All @@ -37,3 +48,59 @@ jobs:
- name: Test with unittest
run: |
python -m unittest
build:
# based on [2]
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install pypa/build
run: |
python3 -m pip install build --user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/

publish-to-testpypi:
# note this is done on *every* push, not only tag pushes [2]
needs: [test, build]
runs-on: ubuntu-latest
environment:
name: testpypi
url: https://test.pypi.org/p/tufup
permissions:
id-token: write
steps:
- name: Download the distribution packages
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distributions to test.pypi.org
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/

publish-to-pypi:
# based on [2]
needs: [test, build, publish-to-testpypi]
runs-on: ubuntu-latest
# only publish to pypi on tag pushes (except dev tags)
if: ${{ startsWith(github.ref, 'refs/tags/') && ! contains(github.ref, 'dev') }}
environment:
name: pypi
url: https://pypi.org/p/tufup
permissions:
id-token: write
steps:
- name: temp
run: echo 'nothing yet'

0 comments on commit 5d67f9a

Please sign in to comment.