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>
This commit is contained in:
80
README.md
Normal file
80
README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user