Files
idf-ci/README.md
T

57 lines
2.0 KiB
Markdown

# idf-ci
Zentrale CI-Bausteine für IDF-Repos.
## Zweck
Dieses Repo ist die Heimat für **geteilte CI-Bausteine**, die von anderen IDF-Repos per `uses:` eingebunden werden. Vorteil: Eine Änderung an einer Stelle wirkt in allen nutzenden Repos — kein 26-facher Copy-Paste-Pflegeaufwand.
Aktuell enthalten:
- `.gitea/workflows/release-plugin.yml` — Reusable Workflow für WordPress-Plugin-Releases. Bei Tag-Push (`v*.*.*`) prüft er Version-Konsistenz, extrahiert den Changelog-Block, baut das ZIP und legt einen Gitea-Release mit ZIP-Asset an.
Geplant:
- `lint-php.yml` — PHPCS / PHPStan für Plugin-Repos.
- `composer/` — geteilte `composer.json`-Snippets.
- `scripts/` — Shell-Helfer für lokales Build und Release.
## Nutzung im Plugin-Repo
In jedem Plugin-Repo (`ideenfabrik/idf-<slug>`) liegt ein schlanker Caller-Workflow, der den Reusable aufruft:
```yaml
# .gitea/workflows/release.yml
name: Release
on:
push:
tags: ['v*.*.*']
jobs:
release:
uses: ideenfabrik/idf-ci/.gitea/workflows/release-plugin.yml@v1
with:
slug: idf-<plugin-slug>
secrets: inherit
```
Für die Anwendung reicht `git tag v1.2.3 && git push --tags`. Alles andere macht der Reusable Workflow.
## Versionierung dieses Repos
Die Reusable Workflows selbst sind per SemVer-Tag versioniert (`v1`, `v1.2`, `v1.2.3`). Plugin-Repos referenzieren einen dieser Tags. Empfehlung:
- **Major-Tag (`@v1`)** — rolling, nimmt automatisch Patches und Minors mit.
- **Minor-Tag (`@v1.2`)** — nimmt nur Patches mit.
- **Exakt (`@v1.2.3`)** — einfriert auf genau diese Version.
Breaking Changes am Workflow → neuer Major-Tag, nutzende Repos müssen manuell nachziehen.
## Dokumentation
Konzeptionelle Grundlagen und der Plugin-Release-Workflow liegen in Notion:
- [Deployment & Versionierung](https://www.notion.so/32b36ebfe9178147ad16ee214302c994)
- [Plugin-Migration auf Git — Checkliste](https://www.notion.so/34b36ebfe9178195980fd4a723ebfde5)
- [Git- & Issue-Workflow](https://www.notion.so/34b36ebfe91781519276f301aac0d74c)