Skip to content

Add orchestration versioning support #46

Add orchestration versioning support

Add orchestration versioning support #46

Workflow file for this run

name: Durable Task SDK (durabletask)
on:
push:
branches:
- "main"
tags:
- "v*" # Only run for tags starting with "v"
pull_request:
branches:
- "main"
jobs:
lint-and-unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel tox
pip install flake8
- name: Run flake8 Linter
working-directory: durabletask
run: flake8 .
- name: "Run flake8 linter: tests"
working-directory: tests/durabletask
run: flake8 .
- name: "Run flake8 linter: examples"
working-directory: examples
run: flake8 .
run-tests:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
needs: lint-and-unit-tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install durabletask dependencies and the library itself
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
pip install -r requirements.txt
pip install .
- name: Pytest unit tests
working-directory: tests/durabletask
run: |
pytest -m "not e2e and not dts" --verbose
# Sidecar for running e2e tests requires Go SDK
- name: Install Go SDK
uses: actions/setup-go@v5
with:
go-version: 'stable'
# Install and run the durabletask-go sidecar for running e2e tests
- name: Pytest e2e tests
working-directory: tests/durabletask
run: |
go install github.com/microsoft/durabletask-go@main
durabletask-go --port 4001 &
pytest -m "e2e and not dts" --verbose
publish:
if: startsWith(github.ref, 'refs/tags/v') # Only run if a matching tag is pushed
needs: run-tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Extract version from tag
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV # Extract version from the tag
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13" # Adjust Python version as needed
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Build package from root directory
run: |
python -m build
- name: Check package
run: |
twine check dist/*
- name: Publish package to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} # Store your PyPI API token in GitHub Secrets
run: |
twine upload dist/*