Feat/python sdk #5
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: publish-python-sdk | ||
| on: | ||
| release: | ||
| types: [published] | ||
| workflow_dispatch: | ||
| jobs: | ||
| publish: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
| - name: Setup Bun | ||
| uses: oven-sh/setup-bun@v1 | ||
| with: | ||
| bun-version: 1.2.21 | ||
| - name: Install dependencies (JS/Bun) | ||
| run: bun install | ||
| - name: Install uv | ||
| shell: bash | ||
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| - name: Generate Python SDK from OpenAPI (CLI) | ||
| shell: bash | ||
| run: | | ||
| ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/generate.py --source cli | ||
| - name: Sync Python dependencies | ||
| shell: bash | ||
| run: | | ||
| ~/.local/bin/uv sync --dev --project packages/sdk/python | ||
| - name: Set version from release tag | ||
| shell: bash | ||
| run: | | ||
| TAG="${GITHUB_REF_NAME:-}" | ||
| if [ -z "$TAG" ]; then | ||
| TAG="$(git describe --tags --abbrev=0 || echo 0.0.0)" | ||
| fi | ||
| echo "Using version: $TAG" | ||
| VERSION="$TAG" ~/.local/bin/uv run --project packages/sdk/python python - <<'PY' | ||
| import os, re, pathlib | ||
| root = pathlib.Path('packages/sdk/python') | ||
| pt = (root / 'pyproject.toml').read_text() | ||
| version = os.environ.get('VERSION','0.0.0').lstrip('v') | ||
| pt = re.sub(r'(?m)^(version\s*=\s*")[^"]+("\s*)$', f"\\1{version}\\2", pt) | ||
| (root / 'pyproject.toml').write_text(pt) | ||
| # Also update generator config override for consistency | ||
| cfgp = root / 'openapi-python-client.yaml' | ||
| if cfgp.exists(): | ||
| cfg = cfgp.read_text() | ||
| cfg = re.sub(r'(?m)^(package_version_override:\s*)\S+$', f"\\1{version}", cfg) | ||
| cfgp.write_text(cfg) | ||
| PY | ||
| - name: Build and publish to PyPI | ||
| env: | ||
| PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | ||
| shell: bash | ||
| run: | | ||
| ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/publish.py | ||