name: 💾 Automated Backup on: schedule: - cron: '0 2 * * *' # Daily at 2 AM UTC workflow_dispatch: jobs: backup: name: 📦 Backup infrastructure runs-on: ubuntu-latest steps: - name: 📥 Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: 💾 Create backup run: | BACKUP_DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="backups/backup_${BACKUP_DATE}" mkdir -p "$BACKUP_DIR" # Backup configs cp -r .github "$BACKUP_DIR/" 2>/dev/null || true cp *.json *.toml *.md "$BACKUP_DIR/" 2>/dev/null || true # Create archive tar -czf "backup_${BACKUP_DATE}.tar.gz" "$BACKUP_DIR" echo "### 💾 Backup Created" >> $GITHUB_STEP_SUMMARY echo "- **Date**: $BACKUP_DATE" >> $GITHUB_STEP_SUMMARY echo "- **Size**: $(du -h backup_${BACKUP_DATE}.tar.gz | cut -f1)" >> $GITHUB_STEP_SUMMARY - name: 📤 Upload artifact uses: actions/upload-artifact@v4 with: name: blackroad-private-backup-${{ github.run_number }} path: backup_*.tar.gz retention-days: 30