From 84cd867b835a050dabec3be06b1b2815a0641522 Mon Sep 17 00:00:00 2001 From: Colin Haywood Date: Wed, 22 Apr 2026 10:31:26 +1200 Subject: [PATCH] ci: Add pipeline for test PyPI --- .github/workflows/release-testpypi.yml | 60 ++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/release-testpypi.yml diff --git a/.github/workflows/release-testpypi.yml b/.github/workflows/release-testpypi.yml new file mode 100644 index 0000000..4935a55 --- /dev/null +++ b/.github/workflows/release-testpypi.yml @@ -0,0 +1,60 @@ +name: Release (TestPyPI) + +on: + workflow_dispatch: + +jobs: + build: + name: Build sdist and wheel + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up uv + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + + - name: Set up Python + run: uv python install 3.12 + + - name: Show package version + run: | + VERSION="$(uv run python -c 'import tomllib; print(tomllib.loads(open("pyproject.toml","rb").read().decode())["project"]["version"])')" + echo "Publishing version: ${VERSION}" + echo "::notice title=TestPyPI version::${VERSION}" + + - name: Build + run: uv build + + - name: Validate distributions + run: uvx twine check dist/* + + - name: Upload distributions + uses: actions/upload-artifact@v4 + with: + name: dist-testpypi + path: dist/ + retention-days: 7 + + publish: + name: Publish to TestPyPI + needs: build + runs-on: ubuntu-latest + environment: + name: testpypi + url: https://test.pypi.org/p/datamasque-python + permissions: + id-token: write + contents: read + steps: + - name: Download distributions + uses: actions/download-artifact@v4 + with: + name: dist-testpypi + path: dist/ + + - name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/