Repository navigation
Release 3.0.0: regenerate SDK from latest OpenAPI spec and move chang… #13
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 🐍 distribution 📦 to PyPI on tag | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: Build distribution 📦 | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv and build | |
| run: | | |
| pip install uv | |
| uv pip install --system build | |
| - name: Install package dependencies | |
| run: | | |
| uv pip install --system . | |
| - name: Test SDK imports | |
| run: | | |
| python -c "import rootly_sdk; print('SDK imports successfully')" | |
| - name: Build package | |
| run: | | |
| python -m build | |
| - name: Store distribution packages | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| publish-to-pypi: | |
| name: Publish distribution 📦 to PyPI | |
| needs: build | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/rootly | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Download distribution packages | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # release/v1 | |
| release: | |
| needs: publish-to-pypi | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 5 | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Fetch annotated tag message | |
| run: git fetch --force origin "refs/tags/${GITHUB_REF_NAME}:refs/tags/${GITHUB_REF_NAME}" | |
| - name: Publish GitHub Release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| TAG_REF="refs/tags/${GITHUB_REF_NAME}" | |
| HIGHLIGHTS="" | |
| if [ "$(git cat-file -t "$TAG_REF" 2>/dev/null || true)" = "tag" ]; then | |
| HIGHLIGHTS=$(git for-each-ref "$TAG_REF" --format='%(contents)' | sed '/^-----BEGIN PGP SIGNATURE-----/,$d') | |
| if [ -z "$(printf '%s' "$HIGHLIGHTS" | tr -d '[:space:]')" ]; then | |
| HIGHLIGHTS="" | |
| fi | |
| fi | |
| RELEASE_ID=$(gh api "repos/${GITHUB_REPOSITORY}/releases?per_page=100" --jq 'map(select(.draft))[0].id // empty') | |
| if [ -n "$RELEASE_ID" ]; then | |
| BODY=$(gh api "repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}" --jq '.body // ""') | |
| if [ -n "$HIGHLIGHTS" ]; then | |
| BODY=$(printf '## Highlights\n\n%s\n\n%s' "$HIGHLIGHTS" "$BODY") | |
| fi | |
| jq -n \ | |
| --arg tag_name "$GITHUB_REF_NAME" \ | |
| --arg name "$GITHUB_REF_NAME" \ | |
| --arg body "$BODY" \ | |
| '{tag_name: $tag_name, name: $name, body: $body, draft: false, make_latest: "true"}' \ | |
| > /tmp/release.json | |
| gh api --method PATCH "repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}" --input /tmp/release.json | |
| elif [ -n "$HIGHLIGHTS" ]; then | |
| gh release create "$GITHUB_REF_NAME" --verify-tag --generate-notes \ | |
| --title "$GITHUB_REF_NAME" --latest \ | |
| --notes "$(printf '## Highlights\n\n%s' "$HIGHLIGHTS")" | |
| else | |
| gh release create "$GITHUB_REF_NAME" --verify-tag --generate-notes \ | |
| --title "$GITHUB_REF_NAME" --latest | |
| fi |