feat: add Gitea CI workflow and production Containerfile
Some checks failed
ci / test (push) Failing after 18s
ci / build (push) Has been skipped

Bake source into the image (COPY src/) so production containers
run without volume mounts. CI pipeline runs ruff + pytest then
builds and pushes harbor.mymx.me/s5p/s5p:latest on push to main.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user
2026-02-21 17:18:14 +01:00
parent fa3621806d
commit 8c99544e34
8 changed files with 71 additions and 7 deletions

View File

@@ -30,7 +30,17 @@ make logs # podman-compose logs -f
make down # podman-compose down
```
Volumes: `./src` (ro), `./config/s5p.yaml` (ro), `~/.cache/s5p``/data` (pool state + profiles)
Volumes: `./config/s5p.yaml` (ro), `~/.cache/s5p``/data` (pool state + profiles)
Dev override: compose.yaml mounts `./src` (ro) over the baked-in source.
## CI
Gitea Actions runs on push to `main`:
1. `ruff check` + `pytest` in `python:3.13-slim`
2. Build + push `harbor.mymx.me/s5p/s5p:latest`
Secrets: `HARBOR_USER` / `HARBOR_PASS` (configured in Gitea repo settings).
## Config

View File

@@ -38,8 +38,9 @@ make build # podman-compose build
make up # podman-compose up -d
```
The Alpine-based image (~59MB) contains only Python and PyYAML.
Application source and config are bind-mounted at runtime.
The Alpine-based image (~59MB) contains Python, PyYAML, and baked-in
source. Config is mounted at runtime. The compose.yaml volume mount
overrides source for local dev.
## Install Tor (optional)