81 lines
2.5 KiB
Markdown
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/sporel/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/sporel/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: sporel/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: sporel/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.
|