diff --git a/.beans/nuzlocke-tracker-ahza--deployment-strategy.md b/.beans/nuzlocke-tracker-ahza--deployment-strategy.md index a7e1b0d..a6542d6 100644 --- a/.beans/nuzlocke-tracker-ahza--deployment-strategy.md +++ b/.beans/nuzlocke-tracker-ahza--deployment-strategy.md @@ -53,5 +53,6 @@ Define and implement a deployment strategy for running the nuzlocke-tracker in p - [x] **Create deploy script** — `./deploy.sh` builds images (podman/docker, linux/amd64), pushes to Gitea registry, SCPs compose file, generates `.env` if needed, pulls and starts containers via SSH - [x] **Configure Nginx Proxy Manager** — add proxy host entries for Gitea and the nuzlocke-tracker frontend/API on the appropriate ports - [x] **Environment & secrets management** — deploy script auto-generates `.env` with `POSTGRES_PASSWORD` on Unraid if missing; file lives at `/mnt/user/appdata/nuzlocke-tracker/.env` +- [ ] **Implement Gitea Actions CI/CD pipeline** — set up Gitea Actions runner on Unraid, create CI workflow (lint/test on `develop`) and deploy workflow (build/push/deploy on `main`); uses GitHub Actions-compatible syntax for portability - [ ] **Database backup strategy** — set up a simple scheduled backup for the PostgreSQL data (e.g., cron + `pg_dump` script on Unraid) - [ ] **Document the deployment workflow** — README or docs covering how to deploy, redeploy, rollback, and manage the production instance \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-jlzs--implement-gitea-actions-cicd-pipeline.md b/.beans/nuzlocke-tracker-jlzs--implement-gitea-actions-cicd-pipeline.md new file mode 100644 index 0000000..b185fa6 --- /dev/null +++ b/.beans/nuzlocke-tracker-jlzs--implement-gitea-actions-cicd-pipeline.md @@ -0,0 +1,28 @@ +--- +# nuzlocke-tracker-jlzs +title: Implement Gitea Actions CI/CD pipeline +status: draft +type: task +created_at: 2026-02-10T09:38:15Z +updated_at: 2026-02-10T09:38:15Z +parent: nuzlocke-tracker-ahza +--- + +Set up Gitea Actions as the CI/CD pipeline for the nuzlocke-tracker. Gitea Actions uses the same syntax as GitHub Actions, making it portable if the project goes public on GitHub later. + +## Context + +- Gitea is already running on Unraid behind Nginx Proxy Manager (`gitea.nerdboden.de`) +- Images are currently built locally and pushed to the Gitea container registry via `deploy.sh` +- Gitea Actions can automate building, pushing images, and triggering deployment on push to `main` +- The workflow syntax is compatible with GitHub Actions, so the same `.github/workflows/` files work on both platforms + +## Checklist + +- [ ] **Enable Gitea Actions on the Gitea instance** — ensure the Actions feature is enabled in `app.ini` (`[actions] ENABLED = true`) and restart Gitea +- [ ] **Set up a Gitea Actions runner** — deploy an `act_runner` container on Unraid (or the same host as Gitea), register it with the Gitea instance, and verify it picks up jobs +- [ ] **Create CI workflow** (`.github/workflows/ci.yml`) — on push to `develop` and PRs: lint, run tests (backend + frontend), and report status +- [ ] **Create deploy workflow** (`.github/workflows/deploy.yml`) — on push to `main`: build Docker images (linux/amd64), push to the Gitea container registry, and trigger redeployment on Unraid via SSH +- [ ] **Configure secrets in Gitea** — add repository or org-level secrets for registry credentials, SSH key/host for deployment, and any other sensitive values the workflows need +- [ ] **Test the full pipeline** — push a change through `feature/*` → `develop` → `main` and verify the CI and deploy workflows run successfully end-to-end +- [ ] **Update deployment docs** — document the Gitea Actions setup, how to manage the runner, and how CI/CD fits into the deployment workflow \ No newline at end of file