Latihan - Membuat alur kerja untuk permintaan pull
Tim pengembangan situs web Anda meminta Anda untuk memperbarui situs web untuk dijalankan pada sistem operasi Linux. Dalam latihan ini, Anda akan menambahkan alur kerja validasi yang berjalan secara otomatis saat permintaan pull dibuka atau diperbarui. Kemudian, Anda akan membuat permintaan pull untuk perubahan sistem operasi situs web Anda.
Selama proses tersebut, Anda akan:
- Buat alur kerja untuk validasi permintaan pull.
- Tambahkan lapisan Bicep ke alur kerja.
- Buat permintaan pull, dan lihat alur kerja berjalan.
- Perbaiki semua kesalahan yang diidentifikasi oleh alur kerja validasi permintaan pull.
- Jalankan kembali alur kerja, lalu gabungkan dan tutup permintaan pull.
Membuat alur kerja yang akan dijalankan saat permintaan pull dibuat dan diperbarui
Di Visual Studio Code, buat file baru bernama pr-validation.yml dalam folder .github/workflows.
Tambahkan kode berikut ke file:
name: pr-validation on: pull_request
Kode ini memastikan bahwa alur kerja dijalankan setiap kali permintaan pull dibuat atau diperbarui.
Catatan
Anda langsung mengerjakan cabang utama repositori Anda. Anda biasanya tidak melakukan hal ini, tetapi dalam latihan ini Anda akan bekerja dengan cabang utama untuk menyederhanakan langkah-langkahnya. Dalam proyek Anda sendiri, penting untuk menyiapkan aturan perlindungan cabang untuk melindungi cabang utama Anda.
Menambahkan pekerjaan lint ke alur kerja Anda
Setiap kali Anda membuka atau mengedit permintaan pull, Anda perlu menjalankan langkah linting untuk file Bicep. Ada alur kerja lint yang dapat digunakan kembali di repositori yang dapat Anda panggil dari alur kerja ini.
Di akhir konten file yang ada, untuk menggunakan kembali alur kerja lint yang ditentukan di repositori Anda, tambahkan baris berikut:
jobs: lint: uses: ./.github/workflows/lint.yml
Repositori Anda memiliki file bicepconfig.json yang mengonfigurasi linter untuk menampilkan kesalahan bukan peringatan, sehingga kegagalan apa pun selama pekerjaan lapisan akan menyebabkan alur kerja gagal.
Simpan perubahan Anda.
Terapkan dan dorong perubahan Anda ke cabang utama repositori Git Anda dengan menjalankan perintah berikut di terminal Visual Studio Code:
git add . git commit -m "Add first version of pull request validation workflow" git push
Perbarui file Bicep
Selanjutnya, ubah file Bicep situs web Anda untuk memperbarui sistem operasi situs web ke Linux.
Di terminal Visual Studio Code, buat cabang baru untuk perubahan Anda dengan menjalankan perintah berikut:
git checkout -b feature/linux-app
Buka file main.bicep di folder deploy.
Di dekat bagian atas file, di bawah definisi variabel, tentukan variabel baru yang akan digunakan kerangka kerja aplikasi:
// Define the names for resources. var appServiceAppName = 'toy-website-linux-${resourceNameSuffix}' var appServicePlanName = 'toy-website-linux' var storageAccountName = 'mystorage${resourceNameSuffix}' var appServiceAppLinuxFrameworkVersion = 'node|14-lts'
Setelan ini memberi tahu Azure App Service yang akan dibangun aplikasi menggunakan kerangka kerja Node.js versi 14.
Perbarui definisi sumber daya
appServicePlan
.kind
Tambahkan properti danreserved
properti dalamproperties
objek:resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: environmentConfigurationMap[environmentType].appServicePlan.sku kind: 'linux' properties: { reserved: true } }
Perbarui definisi sumber daya
appServiceApp
untuk menetapkan kerangka kerja aplikasi:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { linuxFxVersion: 'node|14-lts' } } }
Catatan
Anda mungkin mendapati bahwa Bicep memperingatkan Anda bahwa Anda tidak menggunakan variabel
appServiceAppLinuxFrameworkVersion
. Di sini, Anda sengaja memicu kesalahan linter sehingga Anda dapat mengetahui bagaimana tampilannya dalam permintaan pull GitHub.Simpan perubahan Anda.
Komit dan dorong perubahan Anda ke repositori Git Anda dengan menjalankan perintah berikut di terminal Visual Studio Code:
git add . git commit -m "Update operating system to Linux" git push origin feature/linux-app
Membuat permintaan pull
Setelah alur kerja dikonfigurasi dan file Bicep diperbarui, Anda dapat membuat permintaan pull.
Di browser Anda, pilih Kode.
Pilih 2 cabang untuk membuka daftar cabang di repositori GitHub Anda.
Bandingkan & permintaan pull ditampilkan untuk waktu yang singkat ketika Anda mendorong perubahan ke cabang yang belum memiliki permintaan pull terbuka. Ini adalah pintasan ke halaman Buka permintaan pull.
Di samping cabang feature/linux-app, pilih Permintaan pull baru. Anda mungkin perlu memilih ikon Lainnya (...) untuk menampilkan opsi Permintaan pull baru.
Pilih Buat permintaan pull.
Halaman detail permintaan pull ditampilkan.
Lihat bagian Pemeriksaan pada detail permintaan pull.
Setelah beberapa saat, perhatikan bahwa pemeriksaan otomatis dipicu. Pemeriksaan menjalankan alur kerja validasi permintaan pull Anda.
Mungkin diperlukan beberapa saat sebelum alur kerja mulai berjalan. Refresh jendela browser Anda hingga Anda melihat pemeriksaan status.
Setelah pemeriksaan selesai, Anda dapat melihat bahwa pemeriksaan gagal.
Catatan
GitHub memungkinkan Anda menggabungkan permintaan pull meskipun pemeriksaan status telah gagal. Dalam solusi nyata, Anda harus mengonfigurasi aturan perlindungan cabang untuk mencegah permintaan pull digabungkan hingga pemeriksaan statusnya berhasil.
Memperbaiki kesalahan validasi permintaan pull
Pada panel pemeriksaan status, pilih Detail untuk memeriksa log alur kerja.
Log menyertakan pesan ini dari linter Bicep:
Error no-unused-vars: Variable "appServiceAppLinuxFrameworkVersion" is declared but never used.
Di Visual Studio Code, buka file deploy/main.bicep.
Pada baris 20, ada variabel bernama
appServiceAppLinuxFrameworkVersion
. Variabel ini tidak digunakan. Selanjutnya, Anda akan memperbaiki kesalahan ini.Dalam definisi sumber daya
appServiceApp
, perbarui propertilinuxFxVersion
untuk menggunakan variabel, bukan mengatur properti ke nilai yang dikodekan secara permanen:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { linuxFxVersion: appServiceAppLinuxFrameworkVersion } } }
Di terminal Visual Studio Code, terapkan perubahan dan dorong perubahan ini ke repositori.
git add . git commit -m "Fix Bicep file" git push origin feature/linux-app
Memantau dan menggabungkan permintaan pull
Buka kembali browser Anda ke halaman detail permintaan pull.
Validasi permintaan pull berjalan lagi. Jika pemeriksaan status tidak berjalan, refresh halaman Anda.
Tunggu hingga pemeriksaan selesai. Kali ini, berhasil. Tidak ada kesalahan sintaks atau linter dalam file Bicep, jadi Anda siap menggabungkan permintaan pull.
Pilih Gabungkan permintaan pull untuk menutup permintaan pull dan gabungkan perubahan di cabang utama Anda.
Pilih Konfirmasi penggabungan.