PHP Duster Fix Workflow v3 Migration Guide
Overview
The php_dusterFix.yml workflow has been removed in v3 and replaced with the more comprehensive actions/php/codeStyle action that combines both Rector and Duster
code style enforcement.
Breaking Changes
Workflow Removal
The dedicated Duster Fix workflow (php_dusterFix.yml) has been completely removed in v3. Code style enforcement is now handled by the unified actions/php/codeStyle
action.
Enhanced Functionality
The replacement action provides:
- Rector automated refactoring
- Duster code style fixes via Laravel Pint
- Git blame ignore functionality for both tools
- Better directory support
- Improved caching
Migration Steps
1. Update Workflow References
Before (v2):
uses: ./.github/workflows/php_dusterFix.yml
with:
phpVersion: '8.3'
useComposerAuthJson: true
After (v3):
- name: Apply Code Style
uses: ./actions/php/codeStyle
with:
repository: ${{ github.repository }}
branch: ${{ github.head_ref }}
phpVersion: '8.3' # Optional, defaults to 8.3
directory: 'src' # Optional, defaults to workspace root
2. Required Parameters
The new action requires these parameters:
repository: The GitHub repository (usually${{ github.repository }})branch: The branch to work on (usually${{ github.head_ref }}for PRs)
3. Update Repository Permissions
Ensure your workflow has the necessary permissions:
permissions:
contents: write
4. Complete Workflow Example
name: Code Style
on:
pull_request:
branches: [ main ]
jobs:
code-style:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Apply Code Style
uses: ./actions/php/codeStyle
with:
repository: ${{ github.repository }}
branch: ${{ github.head_ref }}
phpVersion: '8.3'
Key Differences
| Feature | php_dusterFix.yml (v2) | actions/php/codeStyle (v3) |
|---|---|---|
| Tools | Duster only | Rector + Duster |
| Directory Support | Root only | Configurable via directory |
| Git Config | Workflow-level | Action-level |
| Caching | Basic | Enhanced with proper cache keys |
| Commits | Single commit | Separate commits per tool |
| Git Blame | Single ignore entry | Separate ignore entries |
What the New Action Does
-
Rector Processing: Runs automated refactoring first
- Commits changes with message "Rectifying"
- Adds commit hash to
.git-blame-ignore-revs - Creates commit to ignore Rector changes in git blame
-
Duster Processing: Runs Laravel Pint code style fixes
- Commits changes with message "Dusting"
- Adds commit hash to
.git-blame-ignore-revs - Creates commit to ignore Duster changes in git blame
-
Force Push: Pushes all changes to the branch
Dependencies Required
Ensure your project has the necessary dependencies:
{
"require-dev": {
"tightenco/duster": "^3.0",
"rector/rector": "^2.0"
}
}
Migration Checklist
- [ ] Replace workflow calls to use
actions/php/codeStyleaction - [ ] Update required parameters (
repository,branch) - [ ] Add necessary permissions (
contents: write) to workflow - [ ] Install Rector and Duster dependencies in your project
- [ ] Test the new action to ensure both Duster and Rector run correctly
- [ ] Verify that commits are properly ignored in git blame
Benefits of Migration
- Enhanced Code Quality: Both refactoring (Rector) and style fixes (Duster)
- Better Git History: Proper git blame ignore for code style commits
- Improved Performance: Better caching and dependency management
- Flexible Directory Support: Can target subdirectories within repositories
- Unified Approach: Single action for all PHP code style enforcement
Troubleshooting
- Missing Dependencies: Ensure both
tightenco/dusterandrector/rectorare in yourcomposer.json - Permission Errors: Verify the workflow has
contents: writepermission - Directory Issues: Check that the
directoryparameter points to a valid path