CI/CD dengan GitHub Actions & Saluran DevOps · Pelajaran

Penapisan Laluan dan Binaan Terpilih

Cetuskankan hanya aliran kerja dan tugas yang terjejas oleh perubahan menggunakan penapis laluan, pengesanan perubahan dan matriks bersyarat dalam monorepo serta persediaan berbilang repositori.

Pelajaran 4 daripada 413 langkah

Penapisan Laluan dan Binaan Terpilih ialah pelajaran CI/CD dengan GitHub Actions & Saluran DevOps percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran CI/CD dengan GitHub Actions & Saluran DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus CI/CD dengan GitHub Actions & Saluran DevOps merangkumi sejumlah 4 pelajaran.

Masalah Binaan yang Membazir

Dalam monorepo, perubahan pada dokumentasi tidak sepatutnya membina dan melancarkan semula bahagian belakang, bahagian hadapan serta aplikasi mudah alih.

Binaan terpilih hanya menjalankan bahagian saluran paip yang terjejas oleh perubahan, sekali gus menjimatkan masa dan minit pelaksana.

Penapis Laluan pada Pencetus

Pendekatan paling mudah ialah penapis paths pada pencetus. Aliran kerja hanya berjalan apabila fail yang sepadan dengan corak berubah.

on:
  push:
    paths:
      - 'services/api/**'

Mengabaikan Laluan

Anda juga boleh melakukan perkara sebaliknya dengan paths-ignore: jalankan aliran kerja untuk segala-galanya kecuali laluan yang disenaraikan.

Ini berguna untuk melangkau CI bagi perubahan dokumentasi sahaja.

on:
  push:
    paths-ignore:
      - 'docs/**'
      - '**.md'

Had Penapis Pencetus

Penapis pada aras pencetus menentukan sama ada keseluruhan aliran kerja berjalan. Namun, dalam monorepo, anda selalunya mahukan satu aliran kerja yang menentukan kerja yang mana perlu dijalankan.

Untuk itu, kesan perubahan di dalam aliran kerja dan buat percabangan berdasarkan hasilnya.

Tindakan Pengesanan Perubahan

Tindakan dorny/paths-filter memeriksa perbezaan dan mengeluarkan nilai boolean untuk setiap kumpulan laluan yang dinamakan.

Kerja yang seterusnya membaca output tersebut untuk menentukan sama ada perlu dijalankan.

  - uses: dorny/paths-filter@v3
    id: changes
    with:
      filters: |
        api:
          - 'services/api/**'
        web:
          - 'services/web/**'

Mengawal Kerja Berdasarkan Perubahan yang Dikesan

Kerja pengesanan mendedahkan output; kerja hiliran menggunakan if bersama konteks needs untuk berjalan secara bersyarat.

  build-api:
    needs: detect
    if: needs.detect.outputs.api == 'true'
    runs-on: ubuntu-latest
    steps:
      - run: ./build-api.sh

Menyambungkan Output

Kerja pengesanan mesti mengisytiharkan outputs yang meneruskan hasil penapis supaya kerja lain dapat membacanya.

  detect:
    runs-on: ubuntu-latest
    outputs:
      api: ${{ steps.changes.outputs.api }}
      web: ${{ steps.changes.outputs.web }}

Matriks Dinamik

Untuk banyak perkhidmatan, anda boleh membina matriks secara dinamik daripada laluan yang berubah, supaya hanya perkhidmatan yang berubah memasuki matriks.

Jana senarai JSON dalam satu kerja dan masukkannya ke dalam matriks kerja yang seterusnya.

    strategy:
      matrix:
        service: ${{ fromJSON(needs.detect.outputs.list) }}

Git Diff untuk Pengesanan

Anda juga boleh mengesan perubahan menggunakan git mentah. Bandingkan komit semasa dengan asas untuk menyenaraikan direktori yang berubah.

git diff --name-only origin/main...HEAD | cut -d/ -f1-2 | sort -u

Semakan Diperlukan dan Langkauan

Berwaspadalah: jika semakan status yang diperlukan dilangkau kerana tiada perubahan, perlindungan cabang mungkin menyekat gabungan sementara menunggunya.

Penyelesaiannya ialah menambah kerja get akhir yang sentiasa berjaya dan merupakan satu-satunya semakan yang diperlukan, sambil merumuskan kerja bersyarat.

  gate:
    needs: [build-api, build-web]
    if: always()
    runs-on: ubuntu-latest
    steps:
      - run: echo 'all required jobs resolved'

Penyimpanan Cache Mengikut Pakej

Binaan terpilih sesuai digandingkan dengan cache mengikut pakej. Gunakan fail kunci setiap perkhidmatan sebagai kunci cache supaya perubahan yang tidak berkaitan tidak membatalkannya.

Gabungan ini memastikan saluran paip monorepo kekal pantas walaupun repositori semakin besar.

Semakan Pantas

Uji pemahaman anda tentang binaan terpilih.

Ringkasan

Anda telah mempelajari cara membina hanya perkara yang berubah.

  • paths dan paths-ignore mengawal keseluruhan aliran kerja
  • Tindakan pengesanan perubahan mengeluarkan nilai boolean mengikut laluan
  • Kerja menggunakan if + needs untuk berjalan secara bersyarat, dan matriks boleh dibina secara dinamik
  • Tambah kerja get always() untuk keserasian dengan semakan yang diperlukan

Binaan terpilih memastikan CI/CD monorepo pantas dan menjimatkan.

Percuma untuk bermula

Pelajari CI/CD dengan GitHub Actions & Saluran DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Penapisan Laluan dan Binaan Terpilih” percuma?

Ya — teks penuh “Penapisan Laluan dan Binaan Terpilih” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus CI/CD dengan GitHub Actions & Saluran DevOps, tingkat taraf kepada CoddyKit PRO. Kursus CI/CD dengan GitHub Actions & Saluran DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Penapisan Laluan dan Binaan Terpilih”?

Cetuskankan hanya aliran kerja dan tugas yang terjejas oleh perubahan menggunakan penapis laluan, pengesanan perubahan dan matriks bersyarat dalam monorepo serta persediaan berbilang repositori. Anda berlatih CI/CD dengan GitHub Actions & Saluran DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan CI/CD dengan GitHub Actions & Saluran DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran CI/CD dengan GitHub Actions & Saluran DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Penapisan Laluan dan Binaan Terpilih” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran CI/CD dengan GitHub Actions & Saluran DevOps ini?

Ya. Setiap pelajaran CI/CD dengan GitHub Actions & Saluran DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. CI/CD untuk Monorepositori
  2. Aliran Kerja Merentas Repositori
  3. Pengurusan Aliran Kerja Berpusat
  4. Penapisan Laluan dan Binaan Terpilih
← Kembali ke CI/CD dengan GitHub Actions & Saluran DevOps