You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue provides a complete guide through the shared reusable workflows initiative for the TYPO3 Documentation organization. It consolidates all related PRs, issues, decisions, and action items in one place.
Goal: Centralize GitHub Actions workflows in TYPO3-Documentation/.github so that ~29 documentation repositories share a single maintained set of CI/CD workflows instead of each maintaining their own inline copies.
All 7 original reusable workflows are on main; reusable-backport.yml is in production in 9 repos (mostly via SHA pins added in June, which have already drifted — see ADR-003 below).
Version-branch drift (action bumps only reach main, never the maintained 12.4/13.4/14.3 branches) was root-caused via FrontendLocalization#136 / #137; per-repo Dependabot target-branch PRs now cover 10 repos.
reusable-test-documentation.yml — Docker-based documentation rendering test
reusable-apply-precommit.yml — Scheduled pre-commit whitespace fixes with auto-PR
reusable-php-command.yml — Generic PHP + Composer + run command
[TASK] Add concise README with workflow status #3 —
Merged as a slimmed-down version: concise README.md documenting all workflows with adoption status. The originally planned RST Documentation structure and ADR-001/ADR-002 did not land and would need a new PR if still wanted.
[TASK] Add ADR-003: Versioning strategy for shared workflow references #6 — ADR-003: Versioning strategy for workflow references (@main vs @tag vs @SHA). Requesting maintainer feedback. Now backed by production evidence: the June SHA-pin migrations have already drifted across two commits (161f3be vs 46ed94f), so most consumers miss the latest backport fixes.
Overview
This issue provides a complete guide through the shared reusable workflows initiative for the TYPO3 Documentation organization. It consolidates all related PRs, issues, decisions, and action items in one place.
Goal: Centralize GitHub Actions workflows in TYPO3-Documentation/.github so that ~29 documentation repositories share a single maintained set of CI/CD workflows instead of each maintaining their own inline copies.
Background: The initiative started with TYPO3-Documentation/TYPO3CMS-Reference-CoreApi#6414 after the broken m-kuhn/backport@30b6e83 action (missing
dist/index.js) required individual fixes across repos.Workflows were initially placed in t3docs-ci-deploy (TYPO3-Documentation/t3docs-ci-deploy#56), then moved to
.githubper suggestion by @jaapio, implemented by @linawolf.cc: @linawolf @garvinhicking @jaapio
Status update (2026-07-04)
main;reusable-backport.ymlis in production in 9 repos (mostly via SHA pins added in June, which have already drifted — see ADR-003 below).m-kuhn/backport@30b6e83— tracked in [TASK] Migrate remaining repos to shared reusable workflows #5; migration PR open: blog_example#188.main, never the maintained12.4/13.4/14.3branches) was root-caused via FrontendLocalization#136 / #137; per-repo Dependabottarget-branchPRs now cover 10 repos.Merge Checklist
PRs should be reviewed and merged in this order:
Phase 1: Foundation (
.githubrepo)[BUGFIX] Fix backport label_pattern default to use regex with capture group #4 —
Fix
reusable-backport.ymldefaultlabel_patternfrom glob (backport *) to regex with capture group (^backport ([^ ]+)$).korthout/backport-actionrequires a regex to extract the target branch.[TASK] Add reusable workflows for documentation testing, pre-commit, and PHP commands #2 —
Add three new reusable workflows:
reusable-test-documentation.yml— Docker-based documentation rendering testreusable-apply-precommit.yml— Scheduled pre-commit whitespace fixes with auto-PRreusable-php-command.yml— Generic PHP + Composer + run command[TASK] Add concise README with workflow status #3 —
Merged as a slimmed-down version: concise
README.mddocumenting all workflows with adoption status. The originally planned RST Documentation structure and ADR-001/ADR-002 did not land and would need a new PR if still wanted.Phase 2: Consumer repos (after Phase 1)
maininstead (SHA-pinned). Remaining inline workflows tracked in [TASK] Migrate remaining repos to shared reusable workflows #5.backport.yml+documentation.ymlto@mainreferences.main.yamlto shared workflows. PHP 8.1 intentionally dropped from the matrix (see [TASK] Raise minimum PHP to 8.2, update DDEV to PHP 8.2 and Node.js 20 render-guides#1183, merged).Phase 3: Strategy & future work
@mainvs@tagvs@SHA). Requesting maintainer feedback. Now backed by production evidence: the June SHA-pin migrations have already drifted across two commits (161f3bevs46ed94f), so most consumers miss the latest backport fixes.Phase 4: Hardening & freshness (new, June/July 2026)
reusable-node-command.yml, first Node.js reusable (consumer: render-guidestheme-js-tests).--strict, zizmor security audit, conformance script (README table ↔ files, documented inputs), hash-locked tooling, Dependabot with cooldown. Includes zizmor-driven hardening of the existing reusables.target-branchconfig for maintained version branches — 10 per-repo PRs open (12.4/13.4/14.3; blog_example12.4/13.4), e.g. [TASK] Enable Dependabot workflow updates on maintained version branches TYPO3CMS-Guide-FrontendLocalization#138.create-github-app-tokenv1 → v3 with scoped permissions), behavioral smoke tests once [TASK] Add reusable Node command workflow #15 is merged, required status checks via branch protection.Available Shared Workflows
All on
main:reusable-backport.ymlreusable-docs-render.ymlreusable-php-quality.ymlreusable-php-tests.ymlreusable-test-documentation.ymlreusable-apply-precommit.ymlreusable-php-command.ymlreusable-node-command.ymlKey Decisions
.githubrepo (nott3docs-ci-deploy)@main(not@SHA)mainwith CI@mainconsumers need every merge validated: lint, security audit, conformance, freshnessRelated PRs (not part of this initiative but relevant)
ramsey/composer-install(closed unmerged; interim fix, superseded).githubrepo)Questions for maintainers
GettingStarted as test ground— Done: [TASK] Migrate workflows to shared reusable workflows from .github TYPO3CMS-Tutorial-GettingStarted#792 merged 2026-03-23 and has been stable since.Branch protection— Concretely proposed via [FEATURE] Add CI gate for the shared reusable workflows (lint, security, conformance, freshness) #16 (CI gate); remaining admin step: mark the four gate jobs as required status checks.