Merge branch 'develop' into renovate/pytest-6.x
continuous-integration/drone the build was successful
Details
continuous-integration/drone the build was successful
Details
commit
8c31129243
|
@ -0,0 +1,7 @@
|
|||
# Ignore everything
|
||||
*
|
||||
|
||||
# The stuff necessary to build the image
|
||||
!app/
|
||||
!setup.cfg
|
||||
!setup.py
|
|
@ -1,17 +1,21 @@
|
|||
matrix:
|
||||
PYTHON_VERSION:
|
||||
- 3.8
|
||||
- 3.9
|
||||
|
||||
pipeline:
|
||||
test:
|
||||
# Alpine version doesn't have make
|
||||
image: python:${PYTHON_VERSION}
|
||||
image: python:3.8
|
||||
pull: true
|
||||
commands:
|
||||
- make test
|
||||
|
||||
lint:
|
||||
image: python:${PYTHON_VERSION}
|
||||
image: python:3.8
|
||||
commands:
|
||||
- make lint
|
||||
|
||||
publish-dev:
|
||||
image: plugins/docker
|
||||
repo: chewingbever/jos
|
||||
tag: [ dev ]
|
||||
secrets: [ docker_username, docker_password ]
|
||||
when:
|
||||
branch: develop
|
||||
event: push
|
||||
|
|
|
@ -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"]
|
7
Makefile
7
Makefile
|
@ -3,7 +3,7 @@ PYTHON := python3
|
|||
# This can't contain spaces (I think)
|
||||
VENV := .venv
|
||||
# Minimum % coverage for tests to succeed
|
||||
MIN_COV := 10
|
||||
MIN_COV := 0
|
||||
|
||||
|
||||
# By default, just create the venv when needed
|
||||
|
@ -49,6 +49,7 @@ clean:
|
|||
.PHONY: clean
|
||||
|
||||
|
||||
# Run the Flask server
|
||||
# TODO
|
||||
## Starting the server
|
||||
### Run the Quart server
|
||||
run: venv
|
||||
@ '$(VENV)'/bin/python app
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
"""Main application package containing all code."""
|
|
@ -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")
|
|
@ -0,0 +1,3 @@
|
|||
def test_succeed():
|
||||
"""Placeholder test to make CI succeed."""
|
||||
pass
|
Reference in New Issue