|
1 | 1 | ARG SDK_ORIGIN=no_sdk |
2 | 2 |
|
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 |
5 | 5 |
|
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 |
7 | 10 | RUN mkdir -p /package |
8 | | -COPY / /package |
| 11 | +COPY pyproject.toml poetry.lock /package/ |
9 | 12 | 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 |
15 | 13 |
|
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 |
17 | 23 | ARG CONDUCTOR_AUTH_KEY |
18 | 24 | ARG CONDUCTOR_AUTH_SECRET |
19 | 25 | 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 |
28 | 33 | RUN coverage report -m |
29 | 34 |
|
30 | | -FROM python_test_base as test |
| 35 | +FROM python_test_base AS test |
31 | 36 | ARG CONDUCTOR_AUTH_KEY |
32 | 37 | ARG CONDUCTOR_AUTH_SECRET |
33 | 38 | 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} |
37 | 42 | RUN python3 ./tests/integration/main.py |
38 | 43 |
|
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 |
41 | 46 | 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 | + |
43 | 58 | 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 | + |
47 | 60 | 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 |
50 | 63 | ARG PYPI_USER |
51 | 64 | 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