Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A modernizálási parancssori felület integrálása a CI/CD-folyamatokba az alkalmazások nagy léptékű modernizálásának automatizálásához. Ez a cikk bemutatja, hogyan konfigurálhatja a GitHub Actionst és az Azure Pipelinest a modernizálási parancssori felület ütemezés szerinti vagy igény szerinti futtatásához.
A modernizálási parancssori felület CI/CD-folyamatokban való futtatásával a következőket hozhatja létre:
- A frissítések automatizálása ismétlődő ütemezés szerint manuális beavatkozás nélkül.
- A modernizálási munkafolyamatok egységesítése a szervezetben.
- A változások nyomon követése dedikált ágakon és összetevők létrehozása révén.
- Tekintse át az eredményeket lekéréses kérelmek, összefoglalók és naplók készítése révén.
A cikkben szereplő mintafolyamatok a következő lépéseket hajtják végre:
- Töltse le és telepítse a legújabb Modernizálási parancssori felületet.
- Futtasd
modernize upgradekonfigurálható céllal (példáulJava 21). - Véglegesítse az esetleges módosításokat, és küldje el őket egy dedikált ágba.
- Az eredmények összefoglalójának közzététele és a parancssori felület (CLI) naplók feltöltése build-artifaktumként.
Előfeltételek
- GitHub Copilot-előfizetés: Ingyenes, Pro, Pro+, Üzleti vagy Nagyvállalati csomag. Lásd „Copilot-tervek”.
-
Egy GitHub személyes hozzáférési jogkivonat (PAT): Hozzon létre egy jogkivonatot, és tárolja azt egy adattárbeli titkos kódként.
GH_TOKENLásd : Személyes hozzáférési jogkivonatok kezelése.
A folyamat konfigurálása
Hozzon létre egy munkafolyamat-fájlt .github/workflows/modernize.yml az adattárban a következő tartalommal:
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
Munkafolyamat részletei
A munkafolyamat két eseményindítót tartalmaz:
-
Manuális küldés (
workflow_dispatch): Futtassa igény szerint a munkafolyamatot a Műveletek lapon. Igény szerint adjon meg egy frissítési célt, példáulJava 21. -
Ütemezett (
schedule): Naponta automatikusan fut 02:00 (UTC) időpontban. Módosítsa a cron kifejezést az előnyben részesített ütemezésnek megfelelően.
Minden futtatás a következő lépéseket hajtja végre:
- Ellenőrzi az adattár kódját.
- Letölti és telepíti a legújabb modernizálási parancssori felületet.
-
modernize upgradea megadott céllal vagy alapértelmezett céllal fut. - Véglegesíti a módosításokat, és feltölti őket egy időponttal ellátott ágra.
- Összegzést ír a GitHub Actions lépésösszegzésébe, ág- és PR-hivatkozásokkal.
- A parancssori felületi naplók modernizálása összeállítási összetevőként a hibaelhárításhoz.
Megjegyzés:
A munkafolyamat a véglegesítés előtt alaphelyzetbe áll .github/workflows , hogy ne módosítsa véletlenül magát a munkafolyamatfájlt.
A csővezeték futtatása
A munkafolyamat manuális aktiválása:
- Nyissa meg az adattárat a GitHubon.
- Válassza a Műveletek lapot.
- Válassza a Modernizálási parancssori felület lehetőséget a munkafolyamat-listából.
- Válassza a Munkafolyamat futtatása lehetőséget.
- Ha szeretné, adjon meg egy frissítési célt, majd válassza a Munkafolyamat futtatása lehetőséget a megerősítéshez.
A munkafolyamat befejezése után tekintse át a lépés összefoglalását az eredményágra mutató hivatkozásokért, és hozzon létre egy lekéréses kérelmet a módosítások egyesítéséhez.
Hibaelhárítás
Gyakori problémák
Hitelesítési hibák:
- Ellenőrizze, hogy a
GH_TOKENtitkos kód vagy a változó helyesen van-e beállítva egy érvényes GitHub személyes hozzáférési jogkivonattal. - Győződjön meg arról, hogy a jogkivonat rendelkezik a GitHub Copilot-hozzáféréshez szükséges hatókörökhöz.
A rendszer nem észlelt módosításokat:
- A modernizálási parancssori felület azt állapíthatja meg, hogy a megadott célhoz nincs szükség módosításokra.
- Az értékelés részleteiért tekintse át a feltöltött naplók összetevőt.
Feltöltési hibák (Azure Pipelines):
- Győződjön meg arról, hogy a buildszolgáltatás identitása rendelkezik ág létrehozási, hozzájárulási és olvasási engedélyekkel az adattárban.
- Részletes beállítási utasításokat a Git-parancsok futtatása szkriptben című témakörben talál.
A parancssori felület letöltési hibáinak modernizálása:
- Ellenőrizze, hogy a futó rendelkezik-e internet-hozzáféréssel.https://github.com
- Ellenőrizze, hogy van-e olyan proxy- vagy tűzfalkorlátozás, amely letilthatja a letöltést.