|
1 | | -# TYPO3 Documentation Team |
2 | | -Official TYPO3 Documentation |
| 1 | +# TYPO3 Documentation — Shared Workflows |
| 2 | + |
| 3 | +Reusable GitHub Actions workflows for the |
| 4 | +[TYPO3 Documentation](https://github.com/TYPO3-Documentation) organization. |
| 5 | + |
| 6 | +Workflows placed here are automatically available to every repository in the |
| 7 | +organization without allow-list configuration. |
| 8 | + |
| 9 | +## Workflows |
| 10 | + |
| 11 | +| Workflow | Status | Purpose | |
| 12 | +|----------|--------|---------| |
| 13 | +| `reusable-backport.yml` | Production (8 repos) | Backport PRs via labels | |
| 14 | +| `reusable-test-documentation.yml` | Available | Documentation rendering test | |
| 15 | +| `reusable-apply-precommit.yml` | Available | Auto-fix whitespace via pre-commit | |
| 16 | +| `reusable-docs-render.yml` | Available | Render docs with typo3-docs-theme or guides-cli | |
| 17 | +| `reusable-php-quality.yml` | Available | CS Fixer + PHPStan + XML lint | |
| 18 | +| `reusable-php-tests.yml` | Available | PHP unit/integration test matrix | |
| 19 | +| `reusable-php-command.yml` | Available | Generic PHP + Composer command | |
| 20 | + |
| 21 | +**Production** = actively used and proven stable across multiple repos. |
| 22 | +**Available** = on main, ready to adopt, not yet used in production. |
| 23 | + |
| 24 | +Each workflow file contains full input/secret documentation in its YAML |
| 25 | +`inputs:` and `secrets:` definitions. |
| 26 | + |
| 27 | +## Usage |
| 28 | + |
| 29 | +```yaml |
| 30 | +jobs: |
| 31 | + backport: |
| 32 | + uses: TYPO3-Documentation/.github/.github/workflows/reusable-backport.yml@main |
| 33 | + with: |
| 34 | + label_pattern: "^backport ([^ ]+)$" |
| 35 | + secrets: |
| 36 | + APP_ID: ${{ secrets.APP_ID }} |
| 37 | + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} |
| 38 | +``` |
| 39 | +
|
| 40 | +### Secrets (backport) |
| 41 | +
|
| 42 | +| Secret | Required | Description | |
| 43 | +|--------|----------|-------------| |
| 44 | +| `APP_ID` | no | GitHub App ID for creating backport PRs | |
| 45 | +| `APP_PRIVATE_KEY` | no | GitHub App private key (PEM format) | |
| 46 | + |
| 47 | +PRs created with the default `GITHUB_TOKEN` do not trigger CI workflows on the |
| 48 | +backport PR. Passing a GitHub App token ensures backport PRs trigger their own CI |
| 49 | +checks. Falls back to `GITHUB_TOKEN` if neither secret is provided. |
| 50 | + |
| 51 | +## Migration |
| 52 | + |
| 53 | +1. Identify which shared workflow matches your inline job. |
| 54 | +2. Replace the `jobs:` section with a `uses:` call. |
| 55 | +3. Pass inputs via `with:` and secrets via `secrets:`. |
| 56 | +4. Remove inline `permissions:`, `steps:`, and `runs-on:`. |
0 commit comments