Skip to content

Commit 47ab73a

Browse files
Feature migrate to poetry (#307)
1 parent 4cc797a commit 47ab73a

11 files changed

Lines changed: 1182 additions & 58 deletions

File tree

.coveragerc

Lines changed: 0 additions & 17 deletions
This file was deleted.

.github/workflows/pull_request.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
-e CONDUCTOR_SERVER_URL=${{ secrets.CONDUCTOR_SERVER_URL }} \
4040
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
4141
conductor-sdk-test:latest \
42-
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.unit coverage run --source=src/conductor -m unittest discover --verbose --start-directory=./tests/unit"
42+
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.unit coverage run -m pytest tests/unit -v"
4343
4444
- name: Run backward compatibility tests
4545
id: bc_tests
@@ -51,7 +51,7 @@ jobs:
5151
-e CONDUCTOR_SERVER_URL=${{ secrets.CONDUCTOR_SERVER_URL }} \
5252
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
5353
conductor-sdk-test:latest \
54-
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.bc coverage run --source=src/conductor -m unittest discover --verbose --start-directory=./tests/backwardcompatibility"
54+
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.bc coverage run -m pytest tests/backwardcompatibility -v"
5555
5656
- name: Run serdeser tests
5757
id: serdeser_tests
@@ -63,7 +63,7 @@ jobs:
6363
-e CONDUCTOR_SERVER_URL=${{ secrets.CONDUCTOR_SERVER_URL }} \
6464
-v ${{ github.workspace }}/${{ env.COVERAGE_DIR }}:/package/${{ env.COVERAGE_DIR }}:rw \
6565
conductor-sdk-test:latest \
66-
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.serdeser coverage run --source=src/conductor -m unittest discover --verbose --start-directory=./tests/serdesertest"
66+
/bin/sh -c "cd /package && COVERAGE_FILE=/package/${{ env.COVERAGE_DIR }}/.coverage.serdeser coverage run -m pytest tests/serdesertest -v"
6767
6868
- name: Generate coverage report
6969
id: coverage_report

.pre-commit-config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
repos:
2+
- repo: https://github.com/astral-sh/ruff-pre-commit
3+
rev: v0.12.3
4+
hooks:
5+
- id: ruff
6+
args: [""]

Dockerfile

Lines changed: 45 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,66 @@
11
ARG SDK_ORIGIN=no_sdk
22

3-
FROM python:3.7-alpine as python_base
4-
RUN apk add --no-cache tk
3+
FROM python:3.12-alpine AS python_base
4+
RUN apk add --no-cache tk curl
55

6-
FROM python_base as python_test_base
6+
RUN curl -sSL https://install.python-poetry.org | python3 -
7+
ENV PATH="/root/.local/bin:$PATH"
8+
9+
FROM python_base AS python_test_base
710
RUN mkdir -p /package
8-
COPY / /package
11+
COPY pyproject.toml poetry.lock /package/
912
WORKDIR /package
10-
RUN pwd
11-
RUN ls -ltr
12-
ENV PYTHONPATH /package/src:/package/tests
13-
RUN python3 -m pip install -r ./requirements.txt && \
14-
python3 -m pip install -r ./requirements.dev.txt
1513

16-
FROM python_test_base as unit_test
14+
RUN poetry config virtualenvs.create false && \
15+
poetry install --only main --no-root --no-interaction --no-ansi
16+
17+
COPY / /package
18+
ENV PYTHONPATH=/package/src:/package/tests
19+
20+
RUN poetry install --no-interaction --no-ansi
21+
22+
FROM python_test_base AS unit_test
1723
ARG CONDUCTOR_AUTH_KEY
1824
ARG CONDUCTOR_AUTH_SECRET
1925
ARG CONDUCTOR_SERVER_URL
20-
ENV CONDUCTOR_AUTH_KEY=${CONDUCTOR_AUTH_KEY}
21-
ENV CONDUCTOR_AUTH_SECRET=${CONDUCTOR_AUTH_SECRET}
22-
ENV CONDUCTOR_SERVER_URL=${CONDUCTOR_SERVER_URL}
23-
RUN ls -ltr
24-
RUN python3 -m unittest discover --verbose --start-directory=./tests/unit
25-
RUN python3 -m unittest discover --verbose --start-directory=./tests/backwardcompatibility
26-
RUN python3 -m unittest discover --verbose --start-directory=./tests/serdesertest
27-
RUN coverage run --source=./src/conductor/client/orkes -m unittest discover --verbose --start-directory=./tests/integration
26+
ENV CONDUCTOR_AUTH_KEY ${CONDUCTOR_AUTH_KEY}
27+
ENV CONDUCTOR_AUTH_SECRET ${CONDUCTOR_AUTH_SECRET}
28+
ENV CONDUCTOR_SERVER_URL ${CONDUCTOR_SERVER_URL}
29+
RUN pytest tests/unit -v
30+
RUN pytest tests/backwardcompatibility -v
31+
RUN pytest tests/serdesertest -v
32+
RUN coverage run --source=./src/conductor/client/orkes -m pytest tests/integration -v
2833
RUN coverage report -m
2934

30-
FROM python_test_base as test
35+
FROM python_test_base AS test
3136
ARG CONDUCTOR_AUTH_KEY
3237
ARG CONDUCTOR_AUTH_SECRET
3338
ARG CONDUCTOR_SERVER_URL
34-
ENV CONDUCTOR_AUTH_KEY=${CONDUCTOR_AUTH_KEY}
35-
ENV CONDUCTOR_AUTH_SECRET=${CONDUCTOR_AUTH_SECRET}
36-
ENV CONDUCTOR_SERVER_URL=${CONDUCTOR_SERVER_URL}
39+
ENV CONDUCTOR_AUTH_KEY ${CONDUCTOR_AUTH_KEY}
40+
ENV CONDUCTOR_AUTH_SECRET ${CONDUCTOR_AUTH_SECRET}
41+
ENV CONDUCTOR_SERVER_URL ${CONDUCTOR_SERVER_URL}
3742
RUN python3 ./tests/integration/main.py
3843

39-
FROM python:3.11-alpine as publish
40-
RUN apk add --no-cache tk
44+
FROM python:3.12-alpine AS publish
45+
RUN apk add --no-cache tk curl
4146
WORKDIR /package
42-
COPY --from=python_test_base /package /package
47+
48+
RUN curl -sSL https://install.python-poetry.org | python3 -
49+
ENV PATH "/root/.local/bin:$PATH"
50+
51+
COPY pyproject.toml poetry.lock /package/
52+
COPY --from=python_test_base /package/src /package/src
53+
54+
RUN poetry config virtualenvs.create false && \
55+
poetry install --only main --no-root --no-interaction --no-ansi && \
56+
poetry install --no-root --no-interaction --no-ansi
57+
4358
ENV PYTHONPATH /package/src
44-
RUN python3 -m pip install -r ./requirements.txt
45-
RUN ls -ltr
46-
RUN python3 -m pip install setuptools wheel build twine
59+
4760
ARG CONDUCTOR_PYTHON_VERSION
48-
ENV CONDUCTOR_PYTHON_VERSION=${CONDUCTOR_PYTHON_VERSION}
49-
RUN python3 -m build
61+
ENV CONDUCTOR_PYTHON_VERSION ${CONDUCTOR_PYTHON_VERSION}
62+
RUN poetry build
5063
ARG PYPI_USER
5164
ARG PYPI_PASS
52-
RUN python3 -m twine upload dist/* -u ${PYPI_USER} -p ${PYPI_PASS}
65+
RUN poetry config pypi-token.pypi ${PYPI_PASS} && \
66+
poetry publish --username ${PYPI_USER} --password ${PYPI_PASS}

0 commit comments

Comments
 (0)