FastForward DevTools provides a set of reusable GitHub Actions workflows that automate testing, documentation generation, and wiki synchronization. These workflows are synchronized into consumer repositories via the dev-tools:sync command.
Workflows in consumer repositories (located in .github/workflows/) are typically "thin wrappers" that inherit logic from the central dev-tools repository.
Example of an inherited workflow:
name: "Fast Forward Reports"
uses: php-fast-forward/dev-tools/.github/workflows/reports.yml@main
secrets: inheritThis approach ensures that all libraries in the ecosystem benefit from infrastructure updates without requiring manual changes to every repository.
For the protected-branch-safe preview and publish model, see :doc:`../advanced/branch-protection-and-bot-commits`.
The reports.yml workflow is responsible for generating technical documentation and quality reports.
Triggers:
* Push to main.
* Pull Request (opened, synchronized, reopened, closed).
* Manual trigger (workflow_dispatch).
Behavior:
* Main Branch: Runs all checks and deploys the final reports to the root of the gh-pages branch.
* Pull Requests:
- Generates a Preview of the documentation and coverage.
- Deploys the preview to
gh-pagesunderpreviews/pr-{number}/.- Posts a Sticky Comment on the PR with links to the live preview and coverage report.
- Cleanup: When a PR is closed, the workflow automatically removes the preview directory from the
gh-pagesbranch to keep the repository clean.
The wiki.yml workflow synchronizes the documentation generated by the dev-tools wiki command with the GitHub Wiki repository.
Behavior:
* Submodule Management: It manages a submodule at .github/wiki that points to the actual wiki repository.
* Pull Requests: Pushes documentation changes to a dedicated branch (e.g., pr-123) in the wiki repository for review.
* Merge: When a PR is merged into main, it pushes the changes to the master branch of the wiki, making them live.
Note
See :doc:`../configuration/repository-setup` for mandatory initial setup required for the Wiki workflow to function. See :doc:`../advanced/branch-protection-and-bot-commits` for branch protection, bot commit, and submodule pointer conflict guidance.
The tests.yml workflow provides standard Continuous Integration.
- Runs PHPUnit tests across supported PHP versions (defaults to 8.3).
- Validates code style using ECS.
- Performs static analysis.
- Auto Assign: Automatically assigns reviewers to PRs.
- Label Sync: Synchronizes repository labels with ecosystem standards.