feat(deploy): atomic symlink-based deployment strategy (#292)
Commit: 1d6c4318a613235ed192a24859ada257e100353d
Date: 2025-09-03 15:00:04 +0000
Author: PascalHavelange
Commit Message
feat(deploy): atomic symlink-based deployment strategy (#292)
feat(deploy): Implement atomic symlink-based deployment strategy
Replace complex robocopy deployment with simpler, more robust symlink approach:
**Improvements:**
- **Atomic deployment**: Symlink switch provides instant, zero-downtime deployments
- **Easy rollback**: Previous versions remain available as timestamped directories
- **Reduced complexity**: Eliminates complex robocopy operations and multiple file moves
- **Better reliability**: Fewer operations mean fewer failure points
- **Incremental storage**: Keeps last 3 staging directories (staging-YYYYMMDD-HHMMSS)
**Deployment Flow:**
1. Download artifact to deployment-package/
2. Copy to timestamped staging directory (e.g., staging-20250903-143022)
3. Create/update symlink (WEBSERVER_PATH) pointing to new staging directory
4. Cleanup old staging directories (keep last 3)
**Benefits:**
- Deployment time reduced from minutes to seconds
- Automatic version history for troubleshooting
- Eliminates backup complexity during deployment
- Follows modern deployment best practices
**Variable Usage:**
- WEBSERVER_PATH: Points to symlink (production entry point)
- DEPLOY_PATH: Used for staging directory parent location
- All existing GitHub environment variables preserved
Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>
Files Changed
- 📝 Modified:
.github/copilot-instructions.md
- 📝 Modified:
.github/workflows/deploy-mwnf-svr.yml
Links
This documentation was automatically generated from Git commit data.