Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Intégrez la CLI de modernisation à vos pipelines CI/CD pour automatiser à grande échelle la modernisation des applications. Cet article vous montre comment configurer GitHub Actions et Azure Pipelines pour exécuter l’interface CLI Moderniser selon une planification ou à la demande.
Utiliser la CLI de modernisation dans un pipeline CI/CD vous permet de :
- Automatisez les mises à niveau selon une planification périodique sans intervention manuelle.
- Normaliser les flux de travail de modernisation au sein de votre organisation.
- Effectuez le suivi des modifications par le biais de branches dédiées et d’artefacts de build.
- Passez en revue les résultats par le biais de pull requests, de résumés de build et de journaux.
Les exemples de pipelines de cet article effectuent les étapes suivantes :
- Téléchargez et installez la dernière version de Modernize CLI.
- Exécuter
modernize upgradeavec une cible configurable (par exemple).Java 21 - Validez les modifications résultantes et envoyez-les à une branche dédiée.
- Publiez un résumé des résultats et chargez les journaux CLI en tant qu’artefacts de build.
Prerequisites
- Un abonnement GitHub Copilot : Gratuit, Pro, Pro+, Business ou Enterprise. Consultez Plans Copilot.
-
Un jeton d’accès personnel GitHub (PAT) : créez un jeton et stockez-le en tant que secret de dépôt nommé
GH_TOKEN. Consultez Gestion de vos jetons d’accès personnels.
Configurer le pipeline
Créez un fichier de flux de travail dans .github/workflows/modernize.yml votre référentiel avec le contenu suivant :
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
Détails du flux de travail
Le flux de travail comprend deux déclencheurs :
-
Répartition manuelle (
workflow_dispatch) : exécutez le flux de travail à la demande à partir de l’onglet Actions . Spécifiez éventuellement une cible de mise à niveau telle queJava 21. -
Planifié (
schedule) : Exécutez automatiquement à 2 h UTC tous les jours. Ajustez l’expression cron pour qu’elle corresponde à votre planification préférée.
Chaque exécution suit les étapes suivantes :
- Extrait le code du référentiel.
- Télécharge et installe la dernière version du Modernize CLI.
- S'exécute
modernize upgradeavec la cible spécifiée ou utilise par défautlatest. - Valide toutes les modifications et les envoie (push) vers une branche horodatée.
- Rédige un récapitulatif avec des liens de branches et de pull request vers le récapitulatif de l’étape GitHub Actions.
- Charge les journaux de Modernize CLI comme artefact de build pour le dépannage.
Note
Avant de valider, le flux de travail est réinitialisé .github/workflows pour éviter de modifier accidentellement le fichier de flux de travail lui-même.
Exécuter le pipeline
Pour déclencher le flux de travail manuellement :
- Accédez à votre dépôt sur GitHub.
- Sélectionnez l’onglet Actions.
- Sélectionnez l’interface CLI de modernisation dans la liste des flux de travail.
- Sélectionnez Exécuter le flux de travail.
- Si vous le souhaitez, entrez une cible de mise à niveau, puis sélectionnez Exécuter le flux de travail pour confirmer.
Une fois le flux de travail terminé, passez en revue le résumé des étapes pour y trouver les liens vers la branche de résultat et créez une pull request pour fusionner les modifications.
Résolution des problèmes
Problèmes courants
Erreurs d’authentification :
- Vérifiez que le secret ou la
GH_TOKENvariable est correctement défini avec un jeton d’accès personnel GitHub valide. - Vérifiez que le jeton a les étendues requises pour l’accès à GitHub Copilot.
Aucune modification détectée :
- L’interface CLI de modernisation peut déterminer qu’aucune modification n’est nécessaire pour la cible spécifiée.
- Passez en revue le fichier de journal des journaux chargés pour obtenir les détails concernant l'évaluation.
Échecs de push (Azure Pipelines) :
- Vérifiez que l’identité du service de génération dispose des autorisations Créer une branche, Contribuer et Lire sur le référentiel.
- Pour obtenir des instructions détaillées sur l’installation, consultez Exécuter des commandes Git dans un script .
Moderniser les erreurs de téléchargement du CLI :
- Vérifiez que l’exécuteur dispose d’un accès Internet à https://github.com.
- Recherchez les restrictions de proxy ou de pare-feu susceptibles de bloquer le téléchargement.