CI Pipelines v3 Upgrade Guide
Overview
Version 3 of the CI Pipelines introduces significant changes aimed at simplifying workflows, consolidating functionality, and improving maintainability. This major version includes both breaking changes and complete removal of some workflows.
📋 Migration Summary
| Workflow | Change Type | Status | Migration Guide |
|---|---|---|---|
php_test.yml |
🔄 Breaking Changes | Modified | php_test.md |
php_test_phpunit.yml |
❌ Removed | Deleted | php_test_phpunit.md |
php_dusterFix.yml |
🔄 Replaced | Replaced with Action | php_dusterFix.md |
🚨 Breaking Changes
High Impact Changes
- PHP Test Consolidation: All PHP testing now uses a single unified workflow
- Composer Script Requirement: Tests now require
composer run testinstead of direct tool calls - PHP Version Update: Default PHP version updated from 8.2 to 8.3
Removed Workflows
- PHPUnit Workflow: Consolidated into main PHP test workflow
- Duster Fix Workflow: Replaced with enhanced
actions/php/codeStyleaction
📚 Detailed Migration Guides
PHP Testing Changes
php_test.yml - Breaking Changes
- ❌ Removed:
enforceCoverage,minCodeCoverage,runParallelparameters - 🔄 Changed: Default PHP version from 8.2 to 8.3
- 🔄 Changed: Now uses
composer run testcommand - ✅ Required: Must configure test script in
composer.json
php_test_phpunit.yml - Workflow Removed
- ❌ Complete Removal: Workflow no longer exists
- 🔄 Migration Path: Use unified
php_test.ymlworkflow - ✅ Required: Create
composer.jsontest script with PHPUnit command - 📋 Action: Update all workflow references
Code Style Changes
php_dusterFix.yml - Replaced with Action
- ❌ Workflow Removed: No longer available as reusable workflow
- 🔄 Replacement: Use
actions/php/codeStyleaction - ✨ Enhanced: Now includes both Duster and Rector
- ✅ Required: Update to action-based approach with new parameters
🚀 Quick Start Migration
1. Assess Impact
# Find affected workflows in your repository
grep -r "php_test_phpunit.yml\|php_dusterFix.yml\|newRelic_changeTracking.yml" .github/workflows/
2. Update PHP Testing
Add the following to your composer.json file:
{
"scripts": {
"test": "pest --parallel --coverage-clover coverage.xml --log-junit junit.xml"
}
}
3. Update Workflow References
# Before
uses: ./.github/workflows/php_test_phpunit.yml
# After
uses: ./.github/workflows/php_test.yml
📊 Impact Assessment
Low Impact Projects
- Projects using only basic
php_test.ymlfunctionality - Projects not using removed workflows
Medium Impact Projects
- Projects using
php_test.ymlwith coverage parameters - Projects using
php_test_phpunit.yml
High Impact Projects
- Projects using
php_dusterFix.yml - Projects with complex PHP testing configurations
✅ Migration Checklist
Pre-Migration
- [ ] Inventory current workflow usage
- [ ] Review project-specific requirements
- [ ] Plan migration strategy for each affected workflow
PHP Testing Migration
- [ ] Add
testscript tocomposer.json - [ ] Update
php_test.ymlworkflow calls - [ ] Remove coverage-related parameters
- [ ] Test new workflow functionality
Code Style Migration
- [ ] Replace
php_dusterFix.ymlwithactions/php/codeStyle - [ ] Update required parameters
- [ ] Ensure Rector dependency is installed
- [ ] Test combined Duster + Rector functionality
Post-Migration
- [ ] Verify all workflows execute successfully
- [ ] Update team documentation
- [ ] Remove unused workflow references
🆘 Getting Help
If you encounter issues during migration:
- Review Specific Guides: Each migration guide contains detailed troubleshooting sections
- Check Dependencies: Ensure all required packages are installed
- Validate Syntax: Use GitHub's workflow syntax validation
- Test Incrementally: Migrate one workflow at a time
🎯 Benefits of v3
- Simplified Configuration: Fewer parameters to manage
- Enhanced Functionality: Better code style tools and testing flexibility
- Improved Performance: Better caching and dependency management
- Reduced Maintenance: Fewer workflow files to maintain
- Project Control: More flexibility through composer scripts and project-level configuration
Important: This is a major version upgrade with breaking changes. Plan your migration carefully and test thoroughly before deploying to production workflows.