Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Integrasikan Modernisasi CLI ke dalam alur CI/CD Anda untuk mengotomatiskan modernisasi aplikasi dalam skala besar. Artikel ini memperlihatkan kepada Anda cara mengonfigurasi GitHub Actions dan Azure Pipelines untuk menjalankan Modernisasi CLI sesuai jadwal atau sesuai permintaan.
Menjalankan Modernize CLI dalam alur CI/CD memungkinkan Anda untuk:
- Mengotomatiskan peningkatan pada jadwal berulang tanpa intervensi manual.
- Menstandarkan alur kerja modernisasi di seluruh organisasi Anda.
- Lacak perubahan melalui cabang khusus dan hasilkan artefak.
- Tinjau hasil melalui permintaan pull, ringkasan build, dan log.
Contoh alur dalam artikel ini melakukan langkah-langkah berikut:
- Unduh dan instal Modernisasi CLI terbaru.
- Jalankan
modernize upgradedengan target yang dapat dikonfigurasi (misalnya,Java 21). - Terapkan perubahan yang dihasilkan dan push ke cabang khusus.
- Publikasikan ringkasan hasil dan unggah log CLI sebagai artefak build.
Prasyarat
- Langganan GitHub Copilot: Paket Gratis, Pro, Pro+, Bisnis, atau Perusahaan. Lihat Paket copilot.
-
Token Akses Pribadi (PAT) GitHub: Buat token dan simpan sebagai rahasia repositori bernama
GH_TOKEN. Lihat Mengelola token akses pribadi Anda.
Mengonfigurasi pipa
Buat file alur kerja di .github/workflows/modernize.yml repositori Anda dengan konten berikut:
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
Detail alur kerja
Alur kerja mencakup dua pemicu:
-
Pengiriman manual (
workflow_dispatch): Jalankan alur kerja sesuai permintaan dari tab Tindakan . Secara opsional tentukan target peningkatan sepertiJava 21. -
Terjadwal (
schedule): Jalankan secara otomatis pada pukul 02.00 UTC setiap hari. Sesuaikan ekspresi cron agar sesuai dengan jadwal pilihan Anda.
Setiap proses melakukan langkah-langkah berikut:
- Memeriksa kode repositori.
- Mengunduh dan memasang Modernize CLI versi terbaru.
- Menjalankan
modernize upgradedengan target yang ditentukan atau default kelatest. - Menerapkan perubahan apa pun dan mendorongnya ke cabang bertanda waktu.
- Menulis ringkasan dengan tautan cabang dan PR ke ringkasan langkah GitHub Actions.
- Mengunggah log Modernize CLI sebagai artefak build untuk pemecahan masalah.
Nota
Alur kerja direset .github/workflows sebelum melakukan komit untuk menghindari modifikasi file alur kerja itu sendiri secara tidak sengaja.
Jalankan pipa
Untuk memicu alur kerja secara manual:
- Buka repositori Anda di GitHub.
- Pilih tab Tindakan.
- Pilih Modernisasi CLI dari daftar alur kerja.
- Pilih Jalankan alur kerja.
- Secara opsional masukkan target peningkatan, lalu pilih Jalankan alur kerja untuk mengonfirmasi.
Setelah alur kerja selesai, tinjau ringkasan langkah untuk tautan ke cabang hasil dan buat permintaan pull untuk menggabungkan perubahan.
Troubleshooting
Masalah umum
Kesalahan autentikasi:
-
GH_TOKENVerifikasi bahwa rahasia atau variabel diatur dengan benar dengan Token Akses Pribadi GitHub yang valid. - Pastikan token memiliki cakupan yang diperlukan untuk akses GitHub Copilot.
Tidak ada perubahan yang terdeteksi:
- Modernisasi CLI mungkin menentukan bahwa tidak ada perubahan yang diperlukan untuk target yang ditentukan.
- Tinjau artefak log yang diunggah untuk detail tentang penilaian.
Kegagalan push (Azure Pipelines):
- Konfirmasikan identitas layanan build memiliki izin Buat cabang, Kontribusi, dan Baca di repositori.
- Lihat Menjalankan perintah Git dalam skrip untuk instruksi penyiapan terperinci.
Memodernisasi kesalahan pengunduhan CLI:
- Verifikasi bahwa runner memiliki akses internet ke https://github.com.
- Periksa batasan proksi atau firewall yang mungkin memblokir unduhan.