diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fbbde8d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM python:3.8.6 AS base + + +FROM base AS lint + +RUN pip install black + +WORKDIR /data +ENTRYPOINT ["black"] + + +FROM base AS dependencies + +COPY requirements.txt . +RUN pip install -r requirements.txt + + +FROM dependencies AS build + +COPY . . + +ENTRYPOINT [ "python", "setup.py", "install" ] + + +FROM dependencies as test + +COPY test-requirements.txt . +RUN pip install -r test-requirements.txt + +COPY . . + +ENTRYPOINT ["python", "-m", "unittest", "discover", "test/"] \ No newline at end of file diff --git a/Makefile b/Makefile index 5e5c18b..2f37cd9 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,19 @@ SHELL = /bin/bash -build: install lint +build: lint install install: - pip install -r requirements.txt && \ - python setup.py install + docker build --target build . -t patch-python-build && \ + docker run --rm -v $(PWD)/build:/build patch-python-build lint: - pip install black && \ - black . + docker build --target lint . -t patch-python-lint && \ + docker run --rm -v $(PWD):/data patch-python-lint . test: - pip install -r test-requirements.txt && \ - pip install -r requirements.txt && \ - python -m unittest discover test/ + docker build --target test . -t patch-python-test && \ + docker run --rm \ + -e SANDBOX_API_KEY=${SANDBOX_API_KEY} \ + patch-python-test .PHONY: build lint test