Pass per-operation StateItem metadata in async execute_state_transact… #177
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: dapr-python-release | |
| on: | |
| push: | |
| tags: | |
| - v* | |
| workflow_dispatch: | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.10 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.10' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --group dev | |
| - name: Verify tag matches a stable VERSION | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| run: | | |
| uv run python -c " | |
| import os | |
| from importlib.metadata import version | |
| tag = os.environ['GITHUB_REF'].removeprefix('refs/tags/v') | |
| package_version = version('dapr') | |
| assert tag == package_version, ( | |
| f'Tag {os.environ[\"GITHUB_REF\"]!r} expects version={tag!r}, got {package_version!r}. ' | |
| 'Bump VERSION before tagging, see RELEASE.md' | |
| ) | |
| assert '.dev' not in package_version, ( | |
| f'Version {package_version!r} contains .dev. Release tags must point to a stable or rc version' | |
| ) | |
| " | |
| - name: Run Autoformatter | |
| run: | | |
| uv run ruff check --fix && uv run ruff format | |
| statusResult=$(git status -u --porcelain) | |
| if [ -z "$statusResult" ] | |
| then | |
| exit 0 | |
| else | |
| echo "Source files are not formatted correctly. Run 'uv run ruff check --fix && uv run ruff format'." | |
| exit 1 | |
| fi | |
| build: | |
| needs: lint | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python_ver: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python_ver }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python_ver }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --group dev | |
| - name: Check Typing | |
| run: uv run mypy | |
| - name: Run unit-tests | |
| run: | | |
| uv run coverage run -m pytest tests ext -m "not e2e" --ignore=tests/integration --ignore=tests/examples --import-mode=importlib | |
| uv run coverage xml | |
| - name: Upload test coverage | |
| uses: codecov/codecov-action@v6 | |
| publish: | |
| needs: build | |
| if: github.event_name != 'pull_request' | |
| runs-on: ubuntu-latest | |
| env: | |
| TWINE_USERNAME: "__token__" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.10 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.10' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install build twine | |
| - name: Build and publish Dapr Python SDK | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| python -m build --wheel | |
| twine upload dist/* | |
| - name: Build and publish dapr-ext-workflow | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| cd ext/dapr-ext-workflow | |
| python -m build --wheel | |
| twine upload dist/* | |
| - name: Build and publish Dapr Flask Extension | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| cd ext/flask_dapr | |
| python -m build --wheel | |
| twine upload dist/* | |
| - name: Build and publish dapr-ext-grpc | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| cd ext/dapr-ext-grpc | |
| python -m build --wheel | |
| twine upload dist/* | |
| - name: Build and publish dapr-ext-fastapi | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| cd ext/dapr-ext-fastapi | |
| python -m build --wheel | |
| twine upload dist/* | |
| - name: Build and publish dapr-ext-langgraph | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| cd ext/dapr-ext-langgraph | |
| python -m build --wheel | |
| twine upload dist/* | |
| - name: Build and publish dapr-ext-strands | |
| env: | |
| TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }} | |
| run: | | |
| cd ext/dapr-ext-strands | |
| python -m build --wheel | |
| twine upload dist/* |