Files
sporel-tool-ci/README.md
Axel Meyer 506c1797a8 chore: initial bootstrap — 5 reusable workflows + scaffolding
Public-readable Tier-1 exception (alongside sporel-meta) for the
practical reason that community pipelines need to call into these
workflows without per-repo deploy-token setup.

5 reusable workflows moved from sporel-meta/.gitea/workflows/ to here
(Plan-B.1: privacy-fix for sporel-meta which stays private with the
proprietary design docs).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 23:37:38 +02:00

81 lines
2.5 KiB
Markdown

# sporel-tool-ci
Reusable Gitea-Actions workflows for the Sporel platform.
> **Type:** Tool (CI/CD-Workflows)
> **Status:** Active
> **Tier:** Tier 1 (Official, **public-readable**)
## Purpose
Hosts the 5 reusable Gitea-Actions workflows used by every Sporel repo
per [ADR-0025](https://git.davoryn.de/calic/sporel-meta/src/branch/master/docs/adrs/0025-cicd-reusable-workflows.md):
| Workflow | Category (per ADR-0019) | Used by |
|---|---|---|
| `reusable-engine-launcher.yml` | Cat 1 | `sporel-engine`, `sporel-launcher` |
| `reusable-c-lib.yml` | Cat 2 | `sporel-lib-core.<name>` (compiled) |
| `reusable-lua.yml` | Cat 3 | `sporel-lib-<name>` (Lua), `sporel-mod-<name>` (pure Lua) |
| `reusable-hybrid.yml` | Cat 4 | `sporel-mod-<name>` (Hybrid C+Lua) |
| `reusable-docs.yml` | Cat 5 | `sporel-meta`, `sporel-tool-*` |
## Why public
This repo is a **deliberate public-Tier-1 exception** (per
[`licensing-model.md`](https://git.davoryn.de/calic/sporel-meta/src/branch/master/docs/architecture/licensing-model.md)).
The two reasons:
1. **Community pipelines** — Tier-3 community libs/mods need to call
into these workflows from their own repos. Forcing per-repo Deploy-
Token setup would defeat the DRY-CI value proposition entirely
(every contributor would need infrastructure permissions).
2. **Minimal IP exposure** — only YAML pipeline definitions live here,
no architecture docs, no proprietary source. The workflows describe
*how to build* but not *what to build* — that intelligence stays in
`sporel-engine` (private) and `sporel-meta` (private).
Other Tier-1-public exception: `sporel-meta` (modder-readable docs,
when promoted post-legal-review).
## Caller-Template Usage
In each Sporel repo, `.gitea/workflows/release.yml` is a thin caller:
```yaml
name: CI
on:
push:
branches: [master]
tags: ['v*']
pull_request:
jobs:
ci:
uses: calic/sporel-tool-ci/.gitea/workflows/reusable-<category>.yml@master
with:
<inputs-per-workflow>
secrets: inherit
```
Caller-templates per category live in `sporel-meta/templates/workflow-callers/`.
## Versioning
Pin specific revisions for reproducibility:
```yaml
uses: calic/sporel-tool-ci/.gitea/workflows/reusable-engine-launcher.yml@v0.1.0
```
`@master` is convenient during active development; pin to tag for
production stability.
## License
**Proprietary — all rights reserved.** Tier 1 content per
ADR-0027. Public-readable for the practical reasons above; not
re-distributable. See `LICENSE`.
⚠ WIP — legal review pending before public release.