Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Integreer de MODERNize CLI in uw CI/CD-pijplijnen om de modernisering van toepassingen op schaal te automatiseren. In dit artikel leest u hoe u gitHub Actions en Azure Pipelines configureert om de CLI te moderniseren volgens een planning of op aanvraag.
Door het uitvoeren van de Modernize CLI in een CI/CD-pijplijn kunt u:
- Automatiseer upgrades volgens een terugkerend schema zonder handmatige tussenkomst.
- Moderniseringswerkstromen in uw organisatie standaardiseren.
- Houd wijzigingen bij via specifieke vertakkingen en build-artefacten.
- Bekijk de resultaten via pull-aanvragen, bouwoverzichten en logboeken.
De voorbeeldpijplijnen in dit artikel voeren de volgende stappen uit:
- Download en installeer de nieuwste Modernize CLI.
- Uitvoeren
modernize upgrademet een configureerbaar doel (bijvoorbeeldJava 21). - Voer eventuele resulterende wijzigingen door en push deze naar een speciale tak.
- Publiceer een resultatenoverzicht en upload CLI-logboeken als buildartefacten.
Vereiste voorwaarden
- Een GitHub Copilot-abonnement: Gratis, Pro, Pro+, Business of Enterprise-abonnement. Zie Copilot-plannen.
-
Een GitHub Personal Access Token (PAT): Maak een token en sla het op als een opslagplaatsgeheim met de naam
GH_TOKEN. Zie Uw persoonlijke toegangstokens beheren.
De pijplijn configureren
Maak een werkstroombestand .github/workflows/modernize.yml in uw opslagplaats met de volgende inhoud:
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
Werkstroomdetails
De werkstroom bevat twee triggers:
-
Handmatig verzenden (
workflow_dispatch): Voer de werkstroom op aanvraag uit vanaf het tabblad Acties . Geef desgewenst een upgradedoel op, zoalsJava 21. -
Gepland (
schedule): wordt dagelijks om 2:00 uur UTC automatisch uitgevoerd. Pas de cron-expressie aan zodat deze overeenkomt met uw voorkeursschema.
Elke uitvoering voert de volgende stappen uit:
- Controleert de code van de opslagplaats.
- Downloadt en installeert de nieuwste Modernize CLI.
- Voer
modernize upgradeuit met het opgegeven target of standaard naarlatest. - Voert eventuele wijzigingen door en pusht deze naar een branch met tijdstempel.
- Schrijft een samenvatting met branch- en PR-koppelingen naar het overzicht van de GitHub Actions-stap.
- Hiermee uploadt u Modernize CLI-logboeken als een bouwartefact voor probleemoplossing.
Opmerking
De werkstroom wordt opnieuw ingesteld voordat deze wordt doorgevoerd .github/workflows om te voorkomen dat het werkstroombestand zelf per ongeluk wordt gewijzigd.
De pijplijn uitvoeren
De werkstroom handmatig activeren:
- Ga naar uw opslagplaats op GitHub.
- Selecteer het tabblad Acties.
- Selecteer Modernization CLI in de lijst met werkstromen.
- Selecteer Werkstroom uitvoeren.
- Voer desgewenst een upgradedoel in en selecteer vervolgens Werkstroom uitvoeren om te bevestigen.
Nadat de werkstroom is voltooid, bekijkt u de samenvatting van de stap voor koppelingen naar de resultatenbranch en maakt u een pull-aanvraag om de wijzigingen samen te voegen.
Troubleshooting
Veelvoorkomende problemen
Verificatiefouten:
- Controleer of het geheim of de
GH_TOKENvariabele juist is ingesteld met een geldig persoonlijk GitHub-toegangstoken. - Zorg ervoor dat het token de vereiste scopes heeft voor toegang tot GitHub Copilot.
Er zijn geen wijzigingen gedetecteerd:
- De CLI moderniseren kan bepalen dat er geen wijzigingen nodig zijn voor het opgegeven doel.
- Bekijk het geüploade logboekartefact voor meer informatie over de evaluatie.
Pushfouten (Azure Pipelines):
- Controleer of de buildservice-identiteit de machtigingen Create Branch, Contribute en Read heeft voor de opslagplaats.
- Zie Git-opdrachten uitvoeren in een script voor gedetailleerde installatie-instructies.
Downloadfouten van CLI moderniseren:
- Controleer of de runner internettoegang heeft tot https://github.com.
- Controleer op proxy- of firewallbeperkingen die het downloaden mogelijk blokkeren.