v5.1.1 #44
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 | |
| env: | |
| pythonVersion: "3.11" | |
| on: | |
| release: | |
| types: [published] | |
| jobs: | |
| build: | |
| name: "Build and Test" | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ env.pythonVersion }} | |
| run: uv python install ${{ env.pythonVersion }} | |
| - name: Install dependencies | |
| run: uv sync --extra dev | |
| - name: Run Tests | |
| run: uv run pytest tests/ | |
| - name: Run Linter | |
| run: uv run ruff check src/ | |
| publish: | |
| name: "Deploy package to PyPI" | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ env.pythonVersion }} | |
| run: uv python install ${{ env.pythonVersion }} | |
| - name: Install dependencies | |
| run: uv sync --extra dev | |
| - name: Build package | |
| run: uv build | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| docs: | |
| name: "Deploy Docs" | |
| runs-on: ubuntu-latest | |
| needs: [build, publish] | |
| # Only deploy docs for stable releases (not pre-releases/betas) | |
| if: github.event.release.prerelease == false | |
| permissions: | |
| contents: write # Required for pushing to gh-pages branch | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token | |
| fetch-depth: 0 # otherwise, you will failed to push refs to dest repo | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ env.pythonVersion }} | |
| run: uv python install ${{ env.pythonVersion }} | |
| - name: Install dependencies | |
| run: uv sync --extra dev | |
| - name: Create local changes | |
| run: | | |
| cd docs | |
| make html | |
| cd .. | |
| rm -rf tests src .github *.md *.MD *.rst *.lock *.toml LICENSE .flake8 dist .vscode | |
| rm -rf .editorconfig | |
| mv docs/build/html/* . | |
| rm -rf docs/ | |
| touch .nojekyll | |
| echo "py.sdk.tago.io" > CNAME | |
| - name: Commit files | |
| run: | | |
| git config --local user.email "action@github.com" | |
| git config --local user.name "GitHub Action" | |
| git add -A | |
| git commit -m "generated documentation" | |
| - name: Push changes | |
| uses: ad-m/github-push-action@master | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| branch: gh-pages | |
| force: true |