The ecosystem-CI architecture: reusable Forgejo workflows (on: workflow_call)
that downstream repos reference as
`uses: olsitec/foundation/.forgejo/workflows/<x>.yml@master`.
- reusable-node-build.yml: install + build for npm/bun/none — covers the npm
package (olsicrypto), bun package (document-engine), and no-artifact versioned
(olsitrack/api) shapes.
- reusable-docker-build.yml: docker build via the host socket (R5: trusted repos
only until the runner is fenced) — the seaspots-homepage / token-service shape.
- reusable-lint.yml: eslint + yamllint gate (either error → job non-zero).
- reusable-semantic-release.yml: conventionalcommits-preset version probe (dry-run),
faithful to the GitLab template; outputs the computed next version. Real Forgejo
publishing deferred (no @semantic-release/forgejo analogue yet).
- ecosystem-selftest.yml + ci/semantic-release-bumptest.sh: self-contained proof
on the runner of the 999_testing acceptance criteria that need no external repo —
the semantic-release bump sequence (1.0.0→1.1.0→1.1.1→2.0.0→3.0.0) and the
eslint/yamllint non-zero-exit gates. Validated in a foundation-ci container.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>