Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Integrujte modernizační rozhraní příkazového řádku do kanálů CI/CD za účelem automatizace modernizace aplikací ve velkém měřítku. Tento článek ukazuje, jak nakonfigurovat GitHub Actions a Azure Pipelines k použití Modernize CLI podle plánu nebo na vyžádání.
Spuštění modernizovaného rozhraní příkazového řádku v kanálu CI/CD umožňuje:
- Automatizujte upgrady podle opakovaného plánu bez ručního zásahu.
- Standardizace pracovních postupů modernizace v rámci vaší organizace
- Sledujte změny prostřednictvím vyhrazených větví a výsledných sestavení.
- Projděte si výsledky pomocí pull requestů, souhrnů sestavení a protokolů.
Ukázkové kanály v tomto článku provádějí následující kroky:
- Stáhněte a nainstalujte nejnovější modernizační rozhraní příkazového řádku.
- Spusťte
modernize upgrades konfigurovatelným cílem (napříkladJava 21). - Potvrďte všechny výsledné změny a pushněte je do vyhrazené větve.
- Publikujte souhrn výsledků a nahrajte protokoly CLI jako artefakty sestavení.
Předpoklady
- Předplatné GitHub Copilotu: plán Free, Pro, Pro+, Business nebo Enterprise. Podívejte se na plány Copilot.
-
Token PAT (Personal Access Token) GitHubu: Vytvořte token a uložte ho jako tajný kód úložiště s názvem
GH_TOKEN. Viz Správa osobních přístupových tokenů.
Konfigurace kanálu
Vytvořte soubor pracovního postupu v úložišti na .github/workflows/modernize.yml s následujícím obsahem:
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
Podrobnosti pracovního postupu
Pracovní postup obsahuje dva triggery:
-
Ruční odeslání (
workflow_dispatch): Na kartě Akce spusťte pracovní postup na vyžádání. Volitelně zadejte cíl upgradu, napříkladJava 21. -
Naplánované (
schedule): Spustí se automaticky každý den v 2:00 UTC. Upravte výraz cron tak, aby odpovídal vašemu preferovanému plánu.
Každé spuštění provádí následující kroky:
- Zkontroluje kód úložiště.
- Stáhne a nainstaluje nejnovější modernizační rozhraní příkazového řádku.
- Spustí
modernize upgrades určeným cílem nebo výchozím nastavenímlatest. - Potvrdí všechny změny a odešle je do větve s časovým označením.
- Zapíše souhrn kroku GitHub Actions s odkazy na větev a PR.
- Nahraje protokoly z Modernize CLI jako artefakt sestavení pro řešení potíží.
Poznámka:
Pracovní postup se resetuje .github/workflows před potvrzením, aby se zabránilo náhodné úpravě samotného souboru pracovního postupu.
Spustit procesní řetězec
Ruční aktivace pracovního postupu:
- Přejděte do úložiště na GitHubu.
- Vyberte kartu Akce.
- Vyberte modernizační CLI z pracovního seznamu úloh.
- Vyberte Spustit pracovní postup.
- Volitelně zadejte cíl upgradu a potvrďte výběr možnosti Spustit pracovní postup .
Po dokončení pracovního postupu zkontrolujte souhrn kroků pro odkazy na cílovou větev a vytvořte pull request pro sloučení změn.
Troubleshooting
Běžné problémy
Chyby ověřování:
- Ověřte, že
GH_TOKENje tajný klíč nebo proměnná správně nastavená pomocí platného osobního přístupového tokenu GitHubu. - Ujistěte se, že token má požadované rozsahy pro přístup ke GitHub Copilot.
Nebyly zjištěny žádné změny:
- Příkazový řádek Modernize může určit, že pro zadaný cíl nejsou potřeba žádné změny.
- Podrobnosti o posouzení naleznete v nahraném artefaktu protokolů.
Selhání push akcí (Azure Pipelines):
- Ověřte, že identita služby sestavování má oprávnění vytvářet větve, přispívat a číst v rámci úložiště.
- Podrobné pokyny k nastavení najdete v tématu Spuštění příkazů Gitu ve skriptu .
Modernizovat chyby stahování CLI:
- Ověřte, že spouštěč má přístup k https://github.cominternetu .
- Zkontrolujte omezení proxy serveru nebo brány firewall, která by mohla blokovat stahování.