Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulama modernleştirmesini büyük ölçekte otomatikleştirmek için CLI'yi CI/CD işlem hatlarınızla tümleştirin. Bu makalede hem GitHub Actions'ı hem de Azure Pipelines'ı cli'yi zamanlamaya göre veya isteğe bağlı olarak çalıştıracak şekilde nasıl yapılandırabileceğiniz gösterilmektedir.
CI/CD işlem hattında Modernize CLI'yi çalıştırmak size şunları sağlar:
- El ile müdahale olmadan yinelenen bir zamanlamaya göre yükseltmeleri otomatikleştirin.
- Kuruluşunuz genelinde modernleştirme iş akışlarını standartlaştırın.
- Ayrılmış dallar ve derleme yapıtları aracılığıyla değişiklikleri izleyin.
- Pull request'lar, derleme özetleri ve loglar aracılığıyla sonuçları gözden geçirin.
Bu makaledeki örnek işlem hatları aşağıdaki adımları gerçekleştirir:
- En son Modernleştirme CLI'sını indirin ve yükleyin.
- Yapılandırılabilir bir hedefle (örneğin,
modernize upgrade) çalıştırınJava 21. - Elde edilen değişiklikleri kaydedin ve bir özel dala gönderin.
- Bir sonuç özeti yayımlayın ve CLI günlüklerini derleme yapıtları olarak karşıya yükleyin.
Önkoşullar
- GitHub Copilot aboneliği: Ücretsiz, Pro, Pro+, İş veya Kurumsal plan. Bkz. Copilot planları.
-
GitHub Kişisel Erişim Belirteci (PAT): Bir belirteç oluşturun ve bunu
GH_TOKENadlı bir depo gizli dizisi olarak depolayın. Bkz. Kişisel erişim belirteçlerinizi yönetme.
İşlem hattını yapılandırma
Deponuzda aşağıdaki içeriğe sahip bir iş akışı dosyası .github/workflows/modernize.yml oluşturun:
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
İş akışı ayrıntıları
İş akışı iki tetikleyici içerir:
-
El ile gönderme (
workflow_dispatch): eylemler sekmesinden iş akışını isteğe bağlı olarak çalıştırın. İsteğe bağlı olarak gibiJava 21bir yükseltme hedefi belirtin. -
Zamanlandı (
schedule): Her gün 02:00'da (UTC) otomatik olarak çalıştırılır. Cron ifadesini tercih ettiğiniz zamanlamayla eşleşecek şekilde ayarlayın.
Her çalıştırma aşağıdaki adımları gerçekleştirir:
- Depo kodunu kontrol eder.
- En son Modernleştirme CLI'sini indirip yükler.
-
modernize upgradebelirlenen hedefle veya varsayılan olaraklatestile çalışır. - Değişiklikleri işler ve bunları zaman damgalı bir dala iletir.
- GitHub Actions adım özetine dal ve çekme isteği bağlantıları ekleyerek bir özet yazar.
- CLI günlüklerini modernize ederek sorun giderme için bir yapı eseri olarak yükler.
Uyarı
İş akışı dosyasının yanlışlıkla değiştirilmesini önlemek için iş akışı işlemeden önce sıfırlanır .github/workflows .
İşlem hattını çalıştırma
İş akışını el ile tetikleme:
- GitHub'daki deponuza gidin.
- Eylemler sekmesini seçin.
- İş akışı listesinden Modernleştirme CLI'sini seçin.
- İş akışını çalıştır seçeneğini belirleyin.
- İsteğe bağlı olarak bir yükseltme hedefi girin ve onaylamak için İş akışını çalıştır'ı seçin.
İş akışı tamamlandıktan sonra, sonuç dalına yönelik bağlantılar için adım özetini gözden geçirin ve değişiklikleri birleştirmek için bir pull isteği oluşturun.
Sorun giderme
Sık karşılaşılan sorunlar
Kimlik doğrulama hataları:
- Gizli dizi veya değişkenin
GH_TOKENgeçerli bir GitHub Kişisel Erişim Belirteci ile doğru ayarlandığını doğrulayın. - Belirtecin GitHub Copilot erişimi için gerekli kapsamlara sahip olduğundan emin olun.
Hiçbir değişiklik algılanmadı:
- Modernleştirme CLI'sı, belirtilen hedef için hiçbir değişiklik gerekmediğini belirleyebilir.
- Değerlendirmeyle ilgili ayrıntılar için karşıya yüklenen log dosyasını gözden geçirin.
Anında iletme hataları (Azure Pipelines):
- Derleme hizmeti kimliğinin depoda Dal oluşturma, Katkıda Bulunma ve Okuma izinlerine sahip olduğunu onaylayın.
- Ayrıntılı kurulum yönergeleri için bkz. Betikte Git komutlarını çalıştırma .
CLI indirme hatalarını modernleştirin:
- Çalıştırıcının internet erişiminin https://github.com olduğunu doğrulayın.
- İndirmeyi engelleyebilecek ara sunucu veya güvenlik duvarı kısıtlamalarını denetleyin.