From d5fc940e601bba50231c0ffd265899e001213f65 Mon Sep 17 00:00:00 2001 From: Kumi Date: Wed, 19 Jun 2024 09:37:22 +0200 Subject: [PATCH] feat: add CI/CD workflow for PyPI package releases Introduced a GitHub Actions workflow for automated CI/CD of the Python package. This setup includes: - Triggering on push events to any tag - Containerized build environment using Node 20 on Bookworm - Steps for code checkout, dependency installation, and publishing to PyPI This enhancement streamlines the release process and ensures consistent packaging and distribution of the Python package. --- .forgejo/workflows/release.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .forgejo/workflows/release.yml diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml new file mode 100644 index 0000000..a344b2d --- /dev/null +++ b/.forgejo/workflows/release.yml @@ -0,0 +1,32 @@ +name: Python Package CI/CD + +on: + workflow_dispatch: + push: + tags: + - "*" + +jobs: + publish: + name: Publish to PyPI + container: + image: node:20-bookworm + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + apt update + apt install -y python3 python3-venv + + - name: Publish to PyPI + run: | + python3 -m venv venv + . ./venv/bin/activate + pip install -U twine build + python -m build . + python -m twine upload --username __token__ --password ${PYPI_TOKEN} dist/* + env: + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}