Latihan - Membuat alur kerja untuk permintaan pull

Selesai

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

  1. Di Visual Studio Code, buat file baru bernama pr-validation.yml dalam folder .github/workflows.

    Cuplikan layar Visual Studio Code yang memperlihatkan file YML titik validasi PR dalam folder alur kerja.

  2. 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.

  1. 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.

  2. Simpan perubahan Anda.

  3. 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.

  1. Di terminal Visual Studio Code, buat cabang baru untuk perubahan Anda dengan menjalankan perintah berikut:

    git checkout -b feature/linux-app
    
  2. Buka file main.bicep di folder deploy.

  3. 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.

  4. Perbarui definisi sumber daya appServicePlan. kind Tambahkan properti dan reserved properti dalam properties objek:

    resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
      name: appServicePlanName
      location: location
      sku: environmentConfigurationMap[environmentType].appServicePlan.sku
      kind: 'linux'
      properties: {
        reserved: true
      }
    }
    
  5. 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.

  6. Simpan perubahan Anda.

  7. 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.

  1. Di browser Anda, pilih Kode.

  2. Pilih 2 cabang untuk membuka daftar cabang di repositori GitHub Anda.

    Cuplikan layar GitHub yang menampilkan daftar cabang repositori.

    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.

  3. Di samping cabang feature/linux-app, pilih Permintaan pull baru. Anda mungkin perlu memilih ikon Lainnya (...) untuk menampilkan opsi Permintaan pull baru.

    Cuplikan layar GitHub yang menunjukkan tautan untuk membuat permintaan tarik untuk cabang aplikasi linux slash fitur.

  4. Pilih Buat permintaan pull.

    Cuplikan layar panel 'Buka permintaan tarik' GitHub, yang menampilkan tombol 'Buat permintaan tarik'.

    Halaman detail permintaan pull ditampilkan.

  5. 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.

    Cuplikan layar GitHub yang menunjukkan pemeriksaan status gagal di laman detail permintaan tarik.

    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

  1. Pada panel pemeriksaan status, pilih Detail untuk memeriksa log alur kerja.

    Cuplikan layar GitHub yang menunjukkan log alur kerja, termasuk kesalahan validasi.

    Log menyertakan pesan ini dari linter Bicep:

    Error no-unused-vars: Variable "appServiceAppLinuxFrameworkVersion" is declared but never used.
    
  2. 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.

  3. Dalam definisi sumber daya appServiceApp, perbarui properti linuxFxVersion 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
        }
      }
    }
    
  4. 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

  1. 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.

  2. Pilih Gabungkan permintaan pull untuk menutup permintaan pull dan gabungkan perubahan di cabang utama Anda.

    Cuplikan layar GitHub yang menampilkan tombol 'Gabungkan permintaan tarik' pada laman detail permintaan tarik.

  3. Pilih Konfirmasi penggabungan.