From 0872089aa41fb35f2a995bc3e2677c42d630573b Mon Sep 17 00:00:00 2001 From: Niklas Mueller Date: Tue, 14 Oct 2025 19:43:20 +0200 Subject: [PATCH 1/3] version pins python packages --- requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index bdcffa7..8d2be1c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -flask -gunicorn -pypdf +flask==3.1.2 +gunicorn==23.0.0 +pypdf==5.8.0 # For testing -pytest \ No newline at end of file +pytest==8.3.2 From fae29a84533fe2d30f03aa714ad9c0857d7e28d5 Mon Sep 17 00:00:00 2001 From: Niklas Mueller Date: Tue, 14 Oct 2025 19:45:34 +0200 Subject: [PATCH 2/3] version pins docker base image --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9a228d4..d865f20 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -FROM python:3.11-slim -# FROM python:3.11.3 +FROM python:3.11.14-slim # set the working directory WORKDIR /app From 5fbf65816d34f653a519f72f426b3cb063abcb22 Mon Sep 17 00:00:00 2001 From: Niklas Mueller Date: Tue, 14 Oct 2025 22:14:07 +0200 Subject: [PATCH 3/3] adds deploy and pr workflow --- .forgejo/workflows/deployment.yaml | 46 ++++++++++++++++++++++++++++++ .forgejo/workflows/pr.yaml | 22 ++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 .forgejo/workflows/deployment.yaml create mode 100644 .forgejo/workflows/pr.yaml diff --git a/.forgejo/workflows/deployment.yaml b/.forgejo/workflows/deployment.yaml new file mode 100644 index 0000000..60aac7f --- /dev/null +++ b/.forgejo/workflows/deployment.yaml @@ -0,0 +1,46 @@ +name: Auto Deploy pdf-web-tolkit +on: + push: + branches: + - main + +jobs: + # Environment/Checks + check-docker-state: + name: Check Docker State + runs-on: host + timeout-minutes: 5 + steps: + - run: docker ps + + pdf-tools-git-prep: + runs-on: host + timeout-minutes: 5 + needs: [ check-docker-state ] + steps: + # - run: apt install git || true + - run: (cd /root && git clone https://git.tidoni-sky.ddnss.de/tidoni/pdf-web-toolkit.git || true) + - run: (cd /root/pdf-web-toolkit && git pull --rebase --autostash) + + # Build + bld-pdf-tools: + runs-on: host + timeout-minutes: 30 + needs: [ pdf-tools-git-prep ] + if: | + always() + steps: + - run: (cd /root/pdf-web-toolkit && docker build -t pdf-web-toolkit .) + + # Deploy + dpy-pdf-tools: + # name: Deploy pdf-web-toolkit + runs-on: host + timeout-minutes: 10 + needs: [ bld-pdf-tools ] + if: | + always() + steps: + - run: docker stop pdf-web-toolkit || true + - run: docker rm pdf-web-toolkit || true + - run: docker run -d --name pdf-web-toolkit -p 8002:8000 -i -t pdf-web-toolkit diff --git a/.forgejo/workflows/pr.yaml b/.forgejo/workflows/pr.yaml new file mode 100644 index 0000000..d55279a --- /dev/null +++ b/.forgejo/workflows/pr.yaml @@ -0,0 +1,22 @@ +name: PR-Build +on: + push: + branches: + - '!master' # excludes master + - '!main' # excludes main + +jobs: + # Environment/Checks + pr-check: + name: PR Build + runs-on: ubuntu-24.04 + timeout-minutes: 30 + steps: + # Make sure docker is available + - run: docker ps + # Falback to clone the repo at the current commit, need to get commit or branch name + # https://stackoverflow.com/questions/58886293/getting-current-branch-and-commit-hash-in-github-action#58886352 + # - run: (cd /root && git clone https://git.tidoni-sky.ddnss.de/tidoni/pdf-web-toolkit.git) + # - run: (cd /root/pdf-web-toolkit && docker build -t pdf-web-toolkit .) + - run: docker build -t pdf-web-toolkit . + - run: podman run --rm --name pdf-web-toolkit pdf-web-toolkit pytest