From d0038cfef2ef91f9a14a057958ca69e79dd8bf20 Mon Sep 17 00:00:00 2001 From: Dhravya Shah Date: Thu, 16 Apr 2026 18:43:16 -0700 Subject: [PATCH] ci: add version-check to publish-pipecat-sdk-python --- .../workflows/publish-pipecat-sdk-python.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/publish-pipecat-sdk-python.yml b/.github/workflows/publish-pipecat-sdk-python.yml index a0152ce3..ff59b50d 100644 --- a/.github/workflows/publish-pipecat-sdk-python.yml +++ b/.github/workflows/publish-pipecat-sdk-python.yml @@ -25,13 +25,30 @@ jobs: with: python-version: "3.12" + - name: Check if version changed + id: version-check + run: | + LOCAL_VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])") + PACKAGE_NAME=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['name'])") + PIP_VERSION=$(curl -s "https://pypi.org/pypi/$PACKAGE_NAME/json" 2>/dev/null | python -c "import sys,json; print(json.load(sys.stdin)['info']['version'])" 2>/dev/null || echo "0.0.0") + if [ "$LOCAL_VERSION" = "$PIP_VERSION" ]; then + echo "Version $LOCAL_VERSION already published, skipping." + echo "changed=false" >> "$GITHUB_OUTPUT" + else + echo "Publishing $LOCAL_VERSION (PyPI has $PIP_VERSION)" + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + - name: Install build dependencies + if: steps.version-check.outputs.changed == 'true' run: pip install hatchling build - name: Build package + if: steps.version-check.outputs.changed == 'true' run: python -m build - name: Publish to PyPI + if: steps.version-check.outputs.changed == 'true' uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: packages/pipecat-sdk-python/dist/