Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Integrieren Sie die Modernize CLI in Ihre CI/CD-Pipelines, um die Anwendungsmodernisierung im großen Maßstab zu automatisieren. In diesem Artikel erfahren Sie, wie Sie sowohl GitHub-Aktionen als auch Azure-Pipelines so konfigurieren, dass die MODERNize CLI nach einem Zeitplan oder bei Bedarf ausgeführt wird.
Das Ausführen der Modernize CLI in einer CI/CD-Pipeline ermöglicht Folgendes:
- Automatisieren Sie Upgrades nach einem wiederkehrenden Zeitplan ohne manuelle Eingriffe.
- Standardisieren Sie Modernisierungsworkflows in Ihrer Organisation.
- Nachverfolgen von Änderungen über dedizierte Verzweigungen und Erstellen von Artefakten.
- Überprüfen Sie die Ergebnisse durch Pull Requests, Build-Berichte und Protokolle.
Die Beispiel-Pipelines in diesem Artikel führen die folgenden Schritte aus:
- Laden Sie die neueste Modernize CLI herunter, und installieren Sie sie.
- Führen Sie
modernize upgrademit einem konfigurierbaren Ziel aus (z. B.Java 21). - Übernehmen Sie alle resultierenden Änderungen und pushen Sie sie auf einen dedizierten Zweig.
- Veröffentlichen Sie eine Ergebniszusammenfassung, und laden Sie CLI-Protokolle als Buildartefakte hoch.
Voraussetzungen
- Ein GitHub Copilot-Abonnement: Kostenloser, Pro-, Pro+-, Business- oder Enterprise-Plan. Weitere Informationen findest du unter Copilot-Pläne.
-
Ein GitHub Personal Access Token (PAT):Erstellen Sie ein Token, und speichern Sie es als Repositoryschlüssel mit dem Namen
GH_TOKEN. Siehe Verwalten Ihrer persönlichen Zugriffstoken.
Konfigurieren der Pipeline
Erstellen Sie eine Workflowdatei in .github/workflows/modernize.yml Ihrem Repository mit dem folgenden Inhalt:
name: Modernization CLI
on:
workflow_dispatch:
inputs:
upgrade_target:
description: 'Upgrade target (e.g., Java 21)'
required: false
default: 'latest'
schedule:
# Run during off-peak hours: 2 AM UTC daily
- cron: '0 2 * * *'
permissions:
id-token: write
contents: write
actions: read
jobs:
modernization:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Modernize CLI
run: |
curl -fsSL https://raw.githubusercontent.com/microsoft/modernize-cli/main/scripts/install.sh | sh
- name: Run Modernize CLI to upgrade code
run: |
TARGET="${{ github.event.inputs.upgrade_target }}"
if [ -z "$TARGET" ] || [ "$TARGET" = "latest" ]; then
modernize upgrade --no-tty
else
modernize upgrade "$TARGET" --no-tty
fi
- name: Push changes to result branch
id: push_changes
run: |
BRANCH_NAME="modernize-upgrade-${{ github.event.inputs.upgrade_target || 'latest' }}-$(date +%Y%m%d-%H%M%S)"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add -A
git reset .github/workflows
git diff --cached --quiet || git commit -m "chore: apply Modernize CLI changes [skip ci]"
git checkout -B "$BRANCH_NAME"
git push origin "$BRANCH_NAME"
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_OUTPUT
- name: Display results summary
if: success()
run: |
cat >> $GITHUB_STEP_SUMMARY <<EOF
## Modernization Complete
### Branch Information
- **Result Branch**: \`${{ steps.push_changes.outputs.BRANCH_NAME }}\`
- **Target**: ${{ github.event.inputs.upgrade_target || 'latest' }}
### Links
- [View Branch](https://github.com/${{ github.repository }}/tree/${{ steps.push_changes.outputs.BRANCH_NAME }})
- [Create PR](https://github.com/${{ github.repository }}/compare/main...${{ steps.push_changes.outputs.BRANCH_NAME }})
EOF
- name: Upload Modernize CLI logs
if: always()
uses: actions/upload-artifact@v4
with:
name: modernize-logs
path: ~/.modernize/logs/
if-no-files-found: warn
Workflowdetails
Der Workflow enthält zwei Trigger:
-
Manueller Start (
workflow_dispatch): Führen Sie den Workflow auf Anforderung auf der Registerkarte Aktionen aus. Geben Sie optional ein Upgrade-Ziel an, z. B.Java 21. -
Geplant (
schedule): Wird täglich um 2 UHR UTC automatisch ausgeführt. Passen Sie den Cron-Ausdruck an Ihren bevorzugten Zeitplan an.
Jede Ausführung führt die folgenden Schritte aus:
- Überprüft den Repositorycode.
- Lädt die neueste Modernize CLI herunter und installiert sie.
- Wird
modernize upgrademit dem angegebenen Ziel oder standardmäßig mitlatest. - Führt einen Commit für alle Änderungen durch und verschiebt sie an eine Zeitstempel-Verzweigung.
- Schreibt eine Zusammenfassung mit Verzweigungs- und PR-Links zur GitHub Actions-Schrittzusammenfassung.
- Lädt Modernisierungs-CLI-Protokolle als Buildartefakt zur Problembehandlung hoch.
Hinweis
Der Workflow wird zurückgesetzt .github/workflows, bevor ein Commit durchgeführt wird, um zu vermeiden, dass die Workflowdatei versehentlich selbst geändert wird.
Führen Sie die Pipeline aus.
So lösen Sie den Workflow manuell aus:
- Wechseln Sie zu Ihrem Repository auf GitHub.
- Klicken Sie auf die Registerkarte Actions (Aktionen).
- Wählen Sie die Modernisierungs-CLI aus der Workflowliste aus.
- Wählen Sie "Workflow ausführen" aus.
- Geben Sie optional ein Upgradeziel ein, und wählen Sie dann " Workflow ausführen " aus, um dies zu bestätigen.
Überprüfen Sie nach Abschluss des Workflows die Schrittzusammenfassung für Verknüpfungen mit der Ergebniszweigung, und erstellen Sie eine Pullanforderung zum Zusammenführen der Änderungen.
Problembehandlung
Häufige Probleme
Authentifizierungsfehler:
- Überprüfen Sie, ob der geheime Schlüssel oder die
GH_TOKENVariable korrekt mit einem gültigen GitHub Personal Access Token festgelegt ist. - Stellen Sie sicher, dass das Token über die erforderlichen Bereiche für den GitHub Copilot-Zugriff verfügt.
Es wurden keine Änderungen erkannt:
- Die Modernize CLI kann feststellen, dass für das angegebene Ziel keine Änderungen erforderlich sind.
- Überprüfen Sie das hochgeladene Protokollartefakt auf Details zur Bewertung.
Push-Fehler (Azure Pipelines):
- Vergewissern Sie sich, dass die Builddienst-Identität über die Berechtigungen Zweig erstellen, Mitwirken und Lesen für das Repository verfügt.
- Ausführliche Anweisungen zum Einrichten finden Sie unter Run Git commands in a script.
Modernisieren von CLI-Downloadfehlern:
- Vergewissern Sie sich, dass der Läufer über Internetzugriff verfügt https://github.com.
- Überprüfen Sie auf Proxy- oder Firewalleinschränkungen, die den Download blockieren können.