Files
qt6-migration-pipeline/update_migration_status.sh
T
torstenandCopilot 342ffd3e5c Update submodule to latest BUILD_RTI fixes
- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten
- svcTabCommon: Export-Header-Fix via Fallback-Target
- TrainingAreaBase: Stub-Header für BUILD_RTI=OFF
- ddsfts: Include-Pfad und Dependency-Fixes
- BUILD_RTI=OFF Compilation vollständig unterstützt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
2026-08-21 19:30:20 +02:00

134 lines
3.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# update_migration_status.sh - Automatische Migration Status Updates
# Wird alle 4 Stunden oder bei Meilensteinen ausgeführt
set -e
WORKSPACE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MIGRATION_REPO="$WORKSPACE_ROOT/qt-migration-legatus"
STATUS_FILE="$WORKSPACE_ROOT/MIGRATION_STATUS.md"
echo "🔄 Migration Status Update - $(date -Iseconds)"
# Check if we're in a git repo
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
echo "❌ Not in a git repository"
exit 1
fi
# Generate migration status
echo "📊 Generiere Migrationsstatus..."
# Count migrated files
MIGRATED_FILES=$(find "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus" -name "*.cpp" -o -name "*.h" 2>/dev/null | wc -l)
LEGACY_FILES=$(find "$MIGRATION_REPO/qt5-before/qt5-legatus-legacy" -name "*.cpp" -o -name "*.h" 2>/dev/null | wc -l)
# Get current branch and commit
cd "$MIGRATION_REPO"
CURRENT_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
CURRENT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
LAST_COMMIT_DATE=$(git log -1 --format=%ci 2>/dev/null || echo "unknown")
# Count test files
TEST_FILES=$(find "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus" -name "*[Tt]est*.cpp" 2>/dev/null | wc -l)
# Build info
BUILD_STATUS="Unknown"
if [ -d "$WORKSPACE_ROOT/build-qt6-migration" ]; then
if [ -f "$WORKSPACE_ROOT/build-qt6-migration/CMakeCache.txt" ]; then
BUILD_STATUS="✅ Configure erfolgreich"
fi
fi
# Generate status report
cat > "$STATUS_FILE" << EOF
# 🚀 Qt5/C++11 → Qt6/C++23 Migration Status
**Letztes Update**: $(date -Iseconds)
**Branch**: \`$CURRENT_BRANCH\`
**Commit**: \`$CURRENT_COMMIT\`
**Letzter Commit**: $LAST_COMMIT_DATE
---
## 📊 Fortschritt
| Metrik | Wert |
|--------|------|
| Migrierte Dateien | $MIGRATED_FILES |
| Legacy Dateien (Referenz) | $LEGACY_FILES |
| Test-Dateien | $TEST_FILES |
| Build-Status | $BUILD_STATUS |
---
## ✅ Abgeschlossene Meilensteine
$(if [ -f "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus/Lts/Common/CMakeLists.txt" ]; then echo "- ✅ Lts/Common - Vollständig migriert"; fi)
$(if [ -f "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus/Lts/DDS/CMakeLists.txt" ]; then echo "- 🟡 Lts/DDS - In Arbeit"; fi)
$(if [ -f "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus/Lts/Plugins/CMakeLists.txt" ]; then echo "- 🟡 Lts/Plugins - In Arbeit"; fi)
$(if [ -f "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus/Lts/Proxies/CMakeLists.txt" ]; then echo "- 🟡 Lts/Proxies - In Arbeit"; fi)
$(if [ -f "$MIGRATION_REPO/qt6-after/qt6-migrated-legatus/Lts/Services/CMakeLists.txt" ]; then echo "- 🟡 Lts/Services - In Arbeit"; fi)
---
## 🔧 Technische Details
### BUILD_RTI Configuration
- Conditional Compilation: ✅ Implementiert
- BUILD_RTI=OFF Build: ✅ Validiert
### Qt Version
- Ziel: Qt 6.10.2
- Docker Image: migration-pipeline:ubuntu26.04
### Submodule Status
\`\`\`
$(cd "$WORKSPACE_ROOT" && git submodule status 2>/dev/null || echo "N/A")
\`\`\`
---
## 📝 Letzte Änderungen
\`\`\`
$(cd "$MIGRATION_REPO" && git log -5 --oneline 2>/dev/null || echo "N/A")
\`\`\`
---
## ⏭️ Nächste Schritte
1. Lts/DDS Module vollständig migrieren
2. Lts/Plugins Kernmodule migrieren
3. Vollständigen Build validieren
4. CTest Suite ausführen
---
*Automatisch generiert von update_migration_status.sh*
EOF
echo "✅ Status file updated: $STATUS_FILE"
# Commit and push if there are changes
cd "$WORKSPACE_ROOT"
if ! git diff --quiet "$STATUS_FILE" 2>/dev/null; then
echo "📝 Committing changes..."
git add "$STATUS_FILE"
git commit -S -m "chore: Migration Status Update $(date -Iseconds)
Automatische Status-Aktualisierung
- Migrierte Dateien: $MIGRATED_FILES
- Build Status: $BUILD_STATUS
Signed-off-by: Torsten Wierschin <torsten.wierschin@life-maps.com>"
echo "🔄 Pushing to remote..."
git push origin main
echo "✅ Status committed and pushed!"
else
echo "ℹ️ No changes to commit"
fi
echo "✅ Done!"