|
| 1 | +--- |
| 2 | +description: |
| 3 | +globs: |
| 4 | +alwaysApply: false |
| 5 | +--- |
| 6 | +# Deployment and Release Process |
| 7 | + |
| 8 | +## Release Strategy |
| 9 | + |
| 10 | +### Versioning |
| 11 | +- **Semantic Versioning**: Follow semver (MAJOR.MINOR.PATCH) |
| 12 | +- **Current Version**: Defined in [package.json](mdc:package.json) |
| 13 | +- **Git Tags**: Each release creates a corresponding git tag |
| 14 | +- **Branch Strategy**: Releases from `main` branch |
| 15 | + |
| 16 | +### Release Types |
| 17 | +- **Major**: Breaking changes to action inputs/outputs |
| 18 | +- **Minor**: New features, additional inputs, enhanced functionality |
| 19 | +- **Patch**: Bug fixes, security updates, performance improvements |
| 20 | + |
| 21 | +## Build Process |
| 22 | + |
| 23 | +### Pre-Release Checklist |
| 24 | +1. **Code Quality**: All linting and formatting passes |
| 25 | +2. **Tests**: 100% test suite passes with >90% coverage |
| 26 | +3. **Build**: Clean build with `npm run all` |
| 27 | +4. **Documentation**: README and examples updated |
| 28 | +5. **Security**: Security review completed |
| 29 | + |
| 30 | +### Build Pipeline |
| 31 | +```bash |
| 32 | +npm run all # Complete build pipeline: |
| 33 | +# 1. npm run format - Format code with Biome |
| 34 | +# 2. npm run lint - Lint and fix issues |
| 35 | +# 3. npm run test - Run test suite |
| 36 | +# 4. npm run coverage - Generate coverage reports |
| 37 | +# 5. npm run package - Build distribution files |
| 38 | +``` |
| 39 | + |
| 40 | +### Distribution Files |
| 41 | +- **Main Entry**: `dist/index.js` - Bundled action entry point |
| 42 | +- **Source Maps**: `dist/index.js.map` - For debugging |
| 43 | +- **Licenses**: `dist/licenses.txt` - All dependency licenses |
| 44 | +- **Commit Requirement**: All dist files must be committed |
| 45 | + |
| 46 | +## GitHub Actions Integration |
| 47 | + |
| 48 | +### Action Metadata |
| 49 | +Defined in [action.yml](mdc:action.yml): |
| 50 | +- **Runtime**: `node20` - Node.js 20 runtime |
| 51 | +- **Entry Point**: `dist/index.js` |
| 52 | +- **Branding**: Terminal icon, blue color |
| 53 | +- **Inputs**: All supported action inputs with descriptions |
| 54 | + |
| 55 | +### Marketplace Publishing |
| 56 | +- **Automatic**: Releases trigger marketplace updates |
| 57 | +- **Visibility**: Public action available to all GitHub users |
| 58 | +- **Categories**: Tagged with relevant marketplace categories |
| 59 | +- **Documentation**: README serves as marketplace documentation |
| 60 | + |
| 61 | +## Dependency Management |
| 62 | + |
| 63 | +### Renovate Configuration |
| 64 | +Configured in [.github/renovate.json](mdc:.github/renovate.json): |
| 65 | +- **Auto-merge**: Minor and patch updates |
| 66 | +- **Post-update**: Runs `npm run package` after dependency updates |
| 67 | +- **Schedule**: Regular dependency updates |
| 68 | +- **Security**: Immediate security updates |
| 69 | + |
| 70 | +### Dependency Strategy |
| 71 | +- **Production Dependencies**: Minimal, security-focused |
| 72 | +- **Development Dependencies**: Latest stable versions |
| 73 | +- **Lock File**: `package-lock.json` committed for reproducible builds |
| 74 | +- **Overrides**: Security overrides for vulnerable dependencies |
| 75 | + |
| 76 | +## Release Automation |
| 77 | + |
| 78 | +### GitHub Workflows |
| 79 | +Located in `.github/workflows/`: |
| 80 | +- **CI/CD**: Automated testing and building |
| 81 | +- **Release**: Automated release process |
| 82 | +- **Security**: Dependency scanning and security checks |
| 83 | + |
| 84 | +### Release Process |
| 85 | +1. **Version Bump**: Update version in package.json |
| 86 | +2. **Changelog**: Update CHANGELOG.md with changes |
| 87 | +3. **Build**: Run complete build pipeline |
| 88 | +4. **Commit**: Commit all changes including dist files |
| 89 | +5. **Tag**: Create git tag with version |
| 90 | +6. **Push**: Push to main branch |
| 91 | +7. **Release**: GitHub automatically creates release |
| 92 | + |
| 93 | +## Quality Gates |
| 94 | + |
| 95 | +### Pre-Release Validation |
| 96 | +- **Linting**: Biome linting passes |
| 97 | +- **Type Checking**: TypeScript compilation succeeds |
| 98 | +- **Testing**: All tests pass with coverage requirements |
| 99 | +- **Security**: No known vulnerabilities |
| 100 | +- **Build**: Clean build without errors |
| 101 | + |
| 102 | +### Post-Release Validation |
| 103 | +- **Marketplace**: Action appears in GitHub Marketplace |
| 104 | +- **Functionality**: Basic smoke tests pass |
| 105 | +- **Documentation**: Examples work as documented |
| 106 | +- **Compatibility**: Works with supported Node.js versions |
| 107 | + |
| 108 | +## Rollback Strategy |
| 109 | + |
| 110 | +### Version Management |
| 111 | +- **Git Tags**: Enable easy rollback to previous versions |
| 112 | +- **Branch Protection**: Prevent direct pushes to main |
| 113 | +- **Release Notes**: Clear documentation of changes |
| 114 | +- **Breaking Changes**: Clearly marked and documented |
| 115 | + |
| 116 | +### Emergency Procedures |
| 117 | +1. **Identify Issue**: Determine scope and impact |
| 118 | +2. **Quick Fix**: If possible, create hotfix |
| 119 | +3. **Rollback**: Revert to previous stable version |
| 120 | +4. **Communication**: Notify users of issues and resolution |
| 121 | +5. **Post-Mortem**: Analyze and prevent future issues |
| 122 | + |
| 123 | +## Documentation Updates |
| 124 | + |
| 125 | +### Release Documentation |
| 126 | +- **README**: Keep examples and usage current |
| 127 | +- **CHANGELOG**: Document all changes |
| 128 | +- **Migration Guides**: For breaking changes |
| 129 | +- **Examples**: Update workflow examples |
| 130 | + |
| 131 | +### User Communication |
| 132 | +- **Release Notes**: Clear, user-focused descriptions |
| 133 | +- **Breaking Changes**: Prominent warnings and migration paths |
| 134 | +- **New Features**: Usage examples and benefits |
| 135 | +- **Bug Fixes**: Impact and resolution details |
| 136 | + |
| 137 | +## Monitoring and Feedback |
| 138 | + |
| 139 | +### Usage Analytics |
| 140 | +- **GitHub Insights**: Monitor action usage |
| 141 | +- **Error Tracking**: Monitor failure rates |
| 142 | +- **Performance**: Track execution times |
| 143 | +- **Feedback**: User issues and feature requests |
| 144 | + |
| 145 | +### Continuous Improvement |
| 146 | +- **User Feedback**: Regular review of issues and discussions |
| 147 | +- **Performance Metrics**: Monitor and optimize execution time |
| 148 | +- **Security Updates**: Regular security reviews and updates |
| 149 | +- **Feature Development**: Based on user needs and feedback |
0 commit comments