Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
64f11d2
initial commit for asyncio
v1r3n Nov 9, 2025
b2de890
token refresh logic
v1r3n Nov 9, 2025
999e4e7
batch polling and batching support
v1r3n Nov 9, 2025
87883e3
more updates
v1r3n Nov 10, 2025
8c0cedc
Update requirements.txt
v1r3n Nov 10, 2025
c9c5172
Update pyproject.toml
v1r3n Nov 10, 2025
4174b52
Update poetry.lock
v1r3n Nov 10, 2025
a3f2efb
more
v1r3n Nov 10, 2025
5c77310
logging
v1r3n Nov 10, 2025
3033e1e
more tests
v1r3n Nov 10, 2025
b312836
Update test_metrics_collector_events.py
v1r3n Nov 10, 2025
3d78c38
fix tests
v1r3n Nov 10, 2025
da3daeb
remove deprecation warnings
v1r3n Nov 10, 2025
340a2fd
test fixes
v1r3n Nov 10, 2025
8b2fb1b
Create test_task_runner_asyncio_coverage.py
v1r3n Nov 11, 2025
1c6bd6b
tests
v1r3n Nov 11, 2025
a2ba557
Update test_task_handler_coverage.py
v1r3n Nov 11, 2025
ca946f2
Update test_task_handler_coverage.py
v1r3n Nov 11, 2025
ec4b411
Update test_api_metrics.py
v1r3n Nov 11, 2025
0a19e31
Update test_task_runner.py
v1r3n Nov 11, 2025
9338435
Update test_task_handler_asyncio.py
v1r3n Nov 11, 2025
874a46e
Update pull_request.yml
v1r3n Nov 11, 2025
93567b1
Update test_api_metrics.py
v1r3n Nov 11, 2025
a27b1d2
Update test_task_runner_asyncio_concurrency.py
v1r3n Nov 11, 2025
173aa16
fix
v1r3n Nov 12, 2025
6ed3f82
tests
v1r3n Nov 12, 2025
2d3c7be
Update test_task_handler_coverage.py
v1r3n Nov 12, 2025
74cb99f
Update test_task_handler_coverage.py
v1r3n Nov 12, 2025
f914402
tests
v1r3n Nov 12, 2025
26564fc
asyncio loop
v1r3n Nov 20, 2025
23b6cc9
docs and tests
v1r3n Nov 20, 2025
5af2250
Delete ASYNCIO_TEST_COVERAGE.md
v1r3n Nov 20, 2025
9f0ba20
asyncio clean up
v1r3n Nov 21, 2025
ffbeb98
Create LEASE_EXTENSION.md
v1r3n Nov 21, 2025
d2f8b69
retries
v1r3n Nov 21, 2025
c674629
clean up
v1r3n Nov 21, 2025
1ef6929
more
v1r3n Nov 21, 2025
a800e2c
tests
v1r3n Nov 21, 2025
bd49baa
Update test_worker_async_performance.py
v1r3n Nov 21, 2025
af26e7e
docs
v1r3n Nov 22, 2025
db87528
fixes
v1r3n Nov 22, 2025
f2f2918
Delete test_worker_async_performance.py
v1r3n Nov 22, 2025
455137b
listeners and fixes
v1r3n Nov 22, 2025
baf78dc
fixes
v1r3n Nov 23, 2025
7d35dc5
Update task_runner.py
v1r3n Nov 23, 2025
7b01246
more
v1r3n Nov 23, 2025
a293352
fixes
v1r3n Nov 23, 2025
14c6b7c
remove deprecation notices
v1r3n Nov 23, 2025
cd88e9f
Update test_workflows.py
v1r3n Nov 23, 2025
611797f
Update test_worker_coverage.py
v1r3n Nov 23, 2025
108651b
Update task_runner.py
v1r3n Nov 23, 2025
bd6321a
Update test_task_handler_coverage.py
v1r3n Nov 23, 2025
f78ef94
Update test_task_handler_coverage.py
v1r3n Nov 23, 2025
a18afef
Delete test_task_runner_async.py
v1r3n Nov 23, 2025
e71d824
fixes
v1r3n Nov 23, 2025
d18f162
fixes
v1r3n Nov 23, 2025
e6ed229
Update test_metrics_collector.py
v1r3n Nov 23, 2025
7a56f98
docs
v1r3n Nov 23, 2025
9bec5d4
documentation
v1r3n Nov 24, 2025
5f6f6ee
updates to the documentation
v1r3n Nov 24, 2025
78100b2
Automate build python sdk with version from the github release (#367)…
v1r3n Nov 24, 2025
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
64 changes: 31 additions & 33 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,64 +16,62 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Build test image
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'

- name: Install dependencies
run: |
DOCKER_BUILDKIT=1 docker build . \
--target python_test_base \
-t conductor-sdk-test:latest
python -m pip install --upgrade pip
pip install -e .
pip install pytest pytest-cov coverage

- name: Prepare coverage directory
run: |
mkdir -p ${{ env.COVERAGE_DIR }}
chmod 777 ${{ env.COVERAGE_DIR }}
touch ${{ env.COVERAGE_FILE }}
chmod 666 ${{ env.COVERAGE_FILE }}

- name: Run unit tests
id: unit_tests
continue-on-error: true
env:
CONDUCTOR_AUTH_KEY: ${{ secrets.CONDUCTOR_AUTH_KEY }}
CONDUCTOR_AUTH_SECRET: ${{ secrets.CONDUCTOR_AUTH_SECRET }}
CONDUCTOR_SERVER_URL: ${{ secrets.CONDUCTOR_SERVER_URL }}
COVERAGE_FILE: ${{ env.COVERAGE_DIR }}/.coverage.unit
run: |
docker run --rm \
-e CONDUCTOR_AUTH_KEY=${{ secrets.CONDUCTOR_AUTH_KEY }} \
-e CONDUCTOR_AUTH_SECRET=${{ secrets.CONDUCTOR_AUTH_SECRET }} \
-e CONDUCTOR_SERVER_URL=${{ secrets.CONDUCTOR_SERVER_URL }} \
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
conductor-sdk-test:latest \
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.unit coverage run -m pytest tests/unit -v"
coverage run -m pytest tests/unit -v

- name: Run backward compatibility tests
id: bc_tests
continue-on-error: true
env:
CONDUCTOR_AUTH_KEY: ${{ secrets.CONDUCTOR_AUTH_KEY }}
CONDUCTOR_AUTH_SECRET: ${{ secrets.CONDUCTOR_AUTH_SECRET }}
CONDUCTOR_SERVER_URL: ${{ secrets.CONDUCTOR_SERVER_URL }}
COVERAGE_FILE: ${{ env.COVERAGE_DIR }}/.coverage.bc
run: |
docker run --rm \
-e CONDUCTOR_AUTH_KEY=${{ secrets.CONDUCTOR_AUTH_KEY }} \
-e CONDUCTOR_AUTH_SECRET=${{ secrets.CONDUCTOR_AUTH_SECRET }} \
-e CONDUCTOR_SERVER_URL=${{ secrets.CONDUCTOR_SERVER_URL }} \
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
conductor-sdk-test:latest \
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.bc coverage run -m pytest tests/backwardcompatibility -v"
coverage run -m pytest tests/backwardcompatibility -v

- name: Run serdeser tests
id: serdeser_tests
continue-on-error: true
env:
CONDUCTOR_AUTH_KEY: ${{ secrets.CONDUCTOR_AUTH_KEY }}
CONDUCTOR_AUTH_SECRET: ${{ secrets.CONDUCTOR_AUTH_SECRET }}
CONDUCTOR_SERVER_URL: ${{ secrets.CONDUCTOR_SERVER_URL }}
COVERAGE_FILE: ${{ env.COVERAGE_DIR }}/.coverage.serdeser
run: |
docker run --rm \
-e CONDUCTOR_AUTH_KEY=${{ secrets.CONDUCTOR_AUTH_KEY }} \
-e CONDUCTOR_AUTH_SECRET=${{ secrets.CONDUCTOR_AUTH_SECRET }} \
-e CONDUCTOR_SERVER_URL=${{ secrets.CONDUCTOR_SERVER_URL }} \
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
conductor-sdk-test:latest \
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.serdeser coverage run -m pytest tests/serdesertest -v"
coverage run -m pytest tests/serdesertest -v

- name: Generate coverage report
id: coverage_report
continue-on-error: true
run: |
docker run --rm \
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
-v ${{ github.workspace }}/${{ env.COVERAGE_FILE }}:/package/${{ env.COVERAGE_FILE }}:rw \
conductor-sdk-test:latest \
/bin/sh -c "cd /package && coverage combine /package/${{ env.COVERAGE_DIR }}/.coverage.* && coverage report && coverage xml"
coverage combine ${{ env.COVERAGE_DIR }}/.coverage.*
coverage report
coverage xml

- name: Verify coverage file
id: verify_coverage
Expand Down
9 changes: 7 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,19 @@ ENV PATH "/root/.local/bin:$PATH"
COPY pyproject.toml poetry.lock README.md /package/
COPY --from=python_test_base /package/src /package/src

ARG CONDUCTOR_PYTHON_VERSION
ENV CONDUCTOR_PYTHON_VERSION=${CONDUCTOR_PYTHON_VERSION}
RUN if [ -z "$CONDUCTOR_PYTHON_VERSION" ]; then \
echo "CONDUCTOR_PYTHON_VERSION build arg is required." >&2; exit 1; \
fi && \
poetry version "$CONDUCTOR_PYTHON_VERSION"

RUN poetry config virtualenvs.create false && \
poetry install --only main --no-root --no-interaction --no-ansi && \
poetry install --no-root --no-interaction --no-ansi

ENV PYTHONPATH /package/src

ARG CONDUCTOR_PYTHON_VERSION
ENV CONDUCTOR_PYTHON_VERSION ${CONDUCTOR_PYTHON_VERSION}
RUN poetry build
ARG PYPI_USER
ARG PYPI_PASS
Expand Down
Loading
Loading