Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Publish Durable Task Scheduler to PyPI
name: Durable Task Scheduler SDK (durabletask-azuremanaged)

on:
push:
Expand All @@ -15,10 +15,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.12
python-version: 3.13
- name: Install dependencies
working-directory: durabletask-azuremanaged
run: |
Expand All @@ -28,10 +28,17 @@ jobs:
- name: Run flake8 Linter
working-directory: durabletask-azuremanaged
run: flake8 .
- name: Run flake8 Linter
working-directory: tests/durabletask-azuremanaged
run: flake8 .

run-docker-tests:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
env:
EMULATOR_VERSION: "v0.0.5" # Define the variable
EMULATOR_VERSION: "latest"
needs: lint
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -84,7 +91,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12" # Adjust Python version as needed
python-version: "3.13" # Adjust Python version as needed

- name: Install dependencies
run: |
Expand Down
108 changes: 108 additions & 0 deletions .github/workflows/durabletask.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
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/*
59 changes: 0 additions & 59 deletions .github/workflows/pr-validation.yml

This file was deleted.

3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ license = {file = "LICENSE"}
readme = "README.md"
dependencies = [
"grpcio",
"protobuf"
"protobuf",
"asyncio"
]

[project.urls]
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ grpcio>=1.60.0 # 1.60.0 is the version introducing protobuf 1.25.X support, newe
protobuf
pytest
pytest-cov
azure-core
azure-identity
azure-identity
asyncio
6 changes: 3 additions & 3 deletions tests/durabletask-azuremanaged/test_dts_activity_sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
that calls an activity function in a sequence and prints the outputs."""
import os

import pytest

from durabletask import client, task
from durabletask.azuremanaged.client import DurableTaskSchedulerClient
from durabletask.azuremanaged.worker import DurableTaskSchedulerWorker

import pytest


pytestmark = pytest.mark.dts


def hello(ctx: task.ActivityContext, name: str) -> str:
"""Activity function that returns a greeting"""
return f'Hello {name}!'
Expand Down
Loading
Loading