diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..d05cb97 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,55 @@ +--- +kind: pipeline +type: docker +name: build + +steps: + - name: run tests + image: python:3.12 + commands: + - pip install poetry + - poetry install --with main,dev + - poetry run pytest + +trigger: + event: + - pull_request + +--- +kind: pipeline +type: docker +name: deploy + +steps: + - name: run tests + image: python:3.12 + commands: + - pip install poetry + - poetry install --with main,dev + - poetry run pytest + - name: docker + image: plugins/docker + settings: + username: + from_secret: gitea_packpub_username + password: + from_secret: gitea_packpub_password + registry: git.hatecomputers.club + repo: git.hatecomputers.club/hatecomputers/kennel + - name: ssh + image: appleboy/drone-ssh + settings: + host: hatecomputers.club + username: root + key: + from_secret: cd_ssh_key + port: 22 + command_timeout: 2m + script: + - systemctl restart docker-compose@kennel + +trigger: + branch: + - main + event: + - push diff --git a/Dockerfile b/Dockerfile index d9d599d..2414878 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,8 @@ COPY ./pyproject.toml ./poetry.lock* /tmp/ RUN poetry export -f requirements.txt --output requirements.txt --without-hashes FROM python:3.12 -WORKDIR /code -COPY --from=requirements-stage /tmp/requirements.txt /code/requirements.txt -RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt -COPY kennel /code/src -CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "80"] +WORKDIR /app +COPY --from=requirements-stage /tmp/requirements.txt /app/requirements.txt +RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt +COPY kennel /app/kennel +CMD ["uvicorn", "kennel.main:app", "--host", "0.0.0.0", "--port", "80"] diff --git a/data/.gitkeep b/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/data/database/.gitignore b/data/database/.gitignore new file mode 100644 index 0000000..2621632 --- /dev/null +++ b/data/database/.gitignore @@ -0,0 +1,2 @@ +*.sqlite +*.db diff --git a/data/database/.gitkeep b/data/database/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..eb927e0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3" + +services: + api: + restart: always + build: . + healthcheck: + test: ["CMD", "wget", "--spider", "http://localhost:8000/healthcheck"] + interval: 5s + timeout: 10s + retries: 5 + env_file: .env + volumes: + - ./data:/app/data + ports: + - "127.0.0.1:60613:8000" + diff --git a/kennel/static/images/cat.jpg b/kennel/static/images/cat.jpg new file mode 100644 index 0000000..9be8bed Binary files /dev/null and b/kennel/static/images/cat.jpg differ