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


This documentation was automatically generated from Git commit data.