# Gitea Workflows — Limitation Documentation (v1.14, REQ-150) ## Shared workflows (byte-identical Gitea + GitHub) These 3 workflows exist in both `.gitea/workflows/` and `.github/workflows/` and are byte-identical (asserted by `tests/test_pipeline_contract.py`): - `ci.yml` — lint + test + check-only (runs on every PR) - `deploy.yml` — reusable deploy workflow (invoked by consumer repos) - `modules-lifecycle.yml` — L1 + L2 module lifecycle pipeline (plan-only default, full on workflow_dispatch override) ## GitHub-only workflows (no Gitea mirror) These 4 workflows exist only in `.github/workflows/`: - `platform-test.yml` — PR pipeline: lint + unit + integration + schema validation. Uses GitHub Actions features (reusable workflow composition, environment protection) not available in Gitea Actions. - `primitives-plan.yml` — PR plan-only matrix over all L1 primitives. Uses GitHub matrix strategy + `terraform plan` against live AWS. - `patterns-plan.yml` — PR plan-only matrix over all L2 modules. Same pattern as primitives-plan. - `release.yml` — release job on merge to main: computes next semver, creates + updates MAJOR.MINOR.PATCH / MAJOR.MINOR / MAJOR floating tags, creates a GitHub release. GitHub-only by design (Gitea releases are created via the ship workflow's API call, not a workflow). ## Why no Gitea mirror Gitea Actions (act_runner) has limited support for reusable workflow composition, environment protection, and the `gh` CLI used by the release job. The 3 shared workflows are the ones that need to run on both forges (CI + deploy + lifecycle). The 4 GitHub-only workflows are the production-grade platform pipelines that run on GitHub Actions; Gitea is the dev/integration forge. Mirroring them would require feature parity that Gitea Actions does not currently provide. This is a documented limitation, not a defect. A future milestone may add Gitea mirrors if act_runner gains the required features.