Merge branch 'develop' into renovate/pytest-6.x
continuous-integration/drone the build was successful Details

pull/16/head
Jef Roosens 2021-05-18 12:33:05 +02:00
commit 8c31129243
7 changed files with 73 additions and 10 deletions

7
.dockerignore 100644
View File

@ -0,0 +1,7 @@
# Ignore everything
*
# The stuff necessary to build the image
!app/
!setup.cfg
!setup.py

View File

@ -1,17 +1,21 @@
matrix:
PYTHON_VERSION:
- 3.8
- 3.9
pipeline: pipeline:
test: test:
# Alpine version doesn't have make # Alpine version doesn't have make
image: python:${PYTHON_VERSION} image: python:3.8
pull: true pull: true
commands: commands:
- make test - make test
lint: lint:
image: python:${PYTHON_VERSION} image: python:3.8
commands: commands:
- make lint - make lint
publish-dev:
image: plugins/docker
repo: chewingbever/jos
tag: [ dev ]
secrets: [ docker_username, docker_password ]
when:
branch: develop
event: push

34
Dockerfile 100644
View File

@ -0,0 +1,34 @@
FROM python:3.9 AS builder
WORKDIR /wheels
# Update pip & build the wheels
COPY ./setup.cfg ./
RUN pip wheel -e .
FROM python:3.9-slim
# Switch to non-root user
RUN groupadd -r runner && \
useradd -mrg runner runner
# Install the generated wheels
COPY --from=builder /wheels /wheels
RUN pip install \
--no-cache-dir \
--no-warn-script-location \
-f /wheels \
-e /wheels && \
rm -rf /wheels
# Switch to non-root user
USER runner
# Copy source files
WORKDIR /usr/src/app
COPY --chown=runner:runner ./app ./app
COPY --chown=runner:runner setup.cfg setup.py ./
ENTRYPOINT ["python"]
CMD ["app"]

View File

@ -3,7 +3,7 @@ PYTHON := python3
# This can't contain spaces (I think) # This can't contain spaces (I think)
VENV := .venv VENV := .venv
# Minimum % coverage for tests to succeed # Minimum % coverage for tests to succeed
MIN_COV := 10 MIN_COV := 0
# By default, just create the venv when needed # By default, just create the venv when needed
@ -49,6 +49,7 @@ clean:
.PHONY: clean .PHONY: clean
# Run the Flask server ## Starting the server
# TODO ### Run the Quart server
run: venv run: venv
@ '$(VENV)'/bin/python app

View File

@ -0,0 +1 @@
"""Main application package containing all code."""

View File

@ -0,0 +1,13 @@
"""Main entrypoint for the program."""
from quart import Quart
app = Quart("jos")
@app.route("/")
async def hello():
"""Placeholder route."""
return "hello"
app.run(host="0.0.0.0")

View File

@ -0,0 +1,3 @@
def test_succeed():
"""Placeholder test to make CI succeed."""
pass