--- quick_id: 260613-fp9 title: ".gitea and .planning pushes should not trigger a docker image publish" status: ready --- # Quick Task 260613-fp9: Skip Docker publish for `.gitea`/`.planning`-only pushes ## Problem `.gitea/workflows/publish.yml` triggers on every `push` to `main` with no path filter. Two classes of push currently fire a full Docker build + publish that produce an identical image: - `.planning/**`-only commits, which push straight to `main` (the `.planning/*` branch-protection pattern is unprotected). - `.gitea/**`-only changes (CI/workflow edits) merged via PR. Neither changes the shipped artifact — `.dockerignore` already excludes `.planning` (and `apps/api/tests`) from the image — so the rebuild is wasted runner time and a needless `:latest` re-push / new `:vMILESTONE-` tag. ## Change Add a `paths-ignore` filter to the `push` trigger in `publish.yml`: ```yaml on: push: branches: [main] paths-ignore: - '.gitea/**' - '.planning/**' ``` Gitea Actions follows GitHub-compatible workflow syntax (the repo already relies on the native `branches:` push filter). When every file changed in a push to `main` matches a `paths-ignore` glob, the `publish` job is skipped. A push that also touches code/Dockerfile/manifests still triggers publish — correct. Also update the header comment block to document the new skip behavior. ## Tasks 1. **Edit `.gitea/workflows/publish.yml`** - files: `.gitea/workflows/publish.yml` - action: Add `paths-ignore: ['.gitea/**', '.planning/**']` under `on.push`; update the top-of-file `# Trigger:` comment to note doc/CI-only pushes skip. - verify: `paths-ignore` present under `on.push`; YAML still parses; the existing `--target production` self-assertion grep still matches. - done: pushes touching only `.gitea/**` and/or `.planning/**` no longer trigger the publish job; mixed pushes (code + docs) still publish. ## must_haves - truths: - publish.yml `on.push` carries a `paths-ignore` listing `.gitea/**` and `.planning/**` - `branches: [main]` is retained - artifacts: - `.gitea/workflows/publish.yml` - key_links: - `.gitea/workflows/publish.yml`