Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Integre a CLI Modernize nos seus pipelines CI/CD para automatizar a modernização de aplicações em larga escala. Este artigo mostra-lhe como configurar tanto o GitHub Actions como o Azure Pipelines para executar a CLI Modernize num horário ou sob demanda.
Executar CLI Modernize em uma pipeline CI/CD permite-lhe:
- Automatizar atualizações com um calendário recorrente sem intervenção manual.
- Padronize os fluxos de trabalho de modernização em toda a sua organização.
- Acompanha as alterações através de ramos dedicados e constrói artefactos.
- Revise os resultados através de pull requests, resumos de compilações e logs.
Os pipelines de exemplo neste artigo executam as seguintes etapas:
- Descarregue e instale a mais recente CLI do Modernize.
- Execute
modernize upgradecom um alvo configurável (por exemplo,Java 21). - Compromete quaisquer alterações resultantes e envia-as para um branch dedicado.
- Publique um resumo dos resultados e faça o upload de registos de CLI como artefactos de construção.
Pré-requisitos
- Uma subscrição do GitHub Copilot: plano Gratuito, Pro, Pro+, Business ou Enterprise. Ver planos do Copilot.
-
Um Token de Acesso Pessoal (PAT) no GitHub: Crie um token e armazene-o como um segredo de repositório chamado
GH_TOKEN. Veja Gestão dos seus tokens de acesso pessoais.
Configurar a linha de processamento
Crie um ficheiro de fluxo de trabalho no .github/workflows/modernize.yml seu repositório com o seguinte conteúdo:
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
Detalhes do fluxo de trabalho
O fluxo de trabalho inclui dois gatilhos:
-
Despacho manual (
workflow_dispatch): Execute o fluxo de trabalho a pedido a partir do separador Ações . Opcionalmente, especifique um alvo de atualização comoJava 21. -
Agendado (
schedule): Funciona automaticamente às 2 da manhã UTC diariamente. Ajusta a expressão cron para corresponder ao teu horário preferido.
Cada corrida executa os seguintes passos:
- Verifica o código do repositório.
- Descarrega e instala a mais recente CLI do Modernize.
- Executa
modernize upgradecom o alvo especificado ou utilizalatestpor predefinição. - Faz commit de quaisquer alterações e envia-as para um ramo com carimbo de data/hora.
- Escreve um resumo dos passos do GitHub Actions com links para a branch e o PR.
- Carrega registos do Modernize CLI como artefato de build para diagnóstico de problemas.
Observação
O fluxo de trabalho é redefinido .github/workflows antes da confirmação para evitar modificar acidentalmente o próprio ficheiro do fluxo de trabalho.
Executar a linha de processamento
Para ativar o fluxo de trabalho manualmente:
- Vai ao teu repositório no GitHub.
- Selecione o separador Ações.
- Selecione CLI de Modernização na lista de workflow.
- Selecione Executar fluxo de trabalho.
- Opcionalmente, introduza um alvo de atualização e depois selecione Executar fluxo de trabalho para confirmar.
Depois do fluxo de trabalho terminar, reveja o resumo dos passos para ligações para o ramo de resultados e crie um pull request para integrar as alterações.
Troubleshooting
Problemas comuns
Erros de autenticação:
- Verifique se o
GH_TOKENsegredo ou variável está corretamente definido com um GitHub Personal Access Token válido. - Garante que o token tem os escopos necessários para o acesso ao GitHub Copilot.
Nenhuma alteração detetada:
- O CLI Modernize pode determinar que não são necessárias alterações para o alvo especificado.
- Revise os registos de artefacto carregados para obter detalhes sobre a avaliação.
Falhas no push (Azure Pipelines):
- Confirme que a identidade do serviço de build tem a permissão de Criar ramo, Contribuir e Ler no repositório.
- Consulte os comandos Run Git num script para instruções detalhadas de configuração.
Erros de download da Modernize CLI:
- Verifique se o runner tem acesso à internet a https://github.com.
- Verifique se existem restrições de proxy ou firewall que possam bloquear o download.