feat: data connector source metadata for all providers (sync spec v0.… #1
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 to PyPI | |
| # Publishes to PyPI via OIDC trusted publishing whenever a v* tag is pushed. | |
| # No API tokens required — PyPI verifies the GitHub OIDC identity instead. | |
| # | |
| # git tag v0.7.16 # must match the version in pyproject.toml | |
| # git push origin v0.7.16 | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| jobs: | |
| build: | |
| name: Build distribution | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read # for checkout; upload-artifact uses the Actions runtime token, not GITHUB_TOKEN | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false # don't leave GITHUB_TOKEN in git config; build runs third-party code | |
| # Submodule (spec/) is not needed — cloudglue/sdk is already committed. | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install build tooling | |
| run: python -m pip install --upgrade build | |
| - name: Verify tag matches pyproject version | |
| run: | | |
| PKG_VERSION="$(python -c 'import tomllib; print(tomllib.load(open("pyproject.toml","rb"))["project"]["version"])')" | |
| TAG_VERSION="${GITHUB_REF_NAME#v}" | |
| if [ "$PKG_VERSION" != "$TAG_VERSION" ]; then | |
| echo "::error::Tag $GITHUB_REF_NAME (version $TAG_VERSION) does not match pyproject version $PKG_VERSION" | |
| exit 1 | |
| fi | |
| echo "Building and publishing version $PKG_VERSION" | |
| - name: Build sdist and wheel | |
| run: python -m build | |
| - name: Check artifacts | |
| run: | | |
| python -m pip install --upgrade twine | |
| python -m twine check dist/* | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| publish: | |
| name: Publish to PyPI | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/cloudglue | |
| permissions: | |
| id-token: write # required for OIDC trusted publishing | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| - uses: pypa/gh-action-pypi-publish@release/v1 | |
| github-release: | |
| name: Create GitHub Release | |
| needs: publish # only release after a successful PyPI publish | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write # required to create the release and upload assets | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| - name: Create release with sdist + wheel attached | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/* | |
| generate_release_notes: true |