Build Matriks untuk Berbagai Lingkungan
Manfaatkan strategi matriks untuk menjalankan tugas secara paralel pada berbagai versi bahasa, sistem operasi, atau konfigurasi.
Build Matriks untuk Berbagai Lingkungan adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa Itu Pembuatan dengan Matriks?
Selamat datang di fitur canggih GitHub Actions: Pembuatan dengan Matriks! Bayangkan Anda perlu menguji kode di berbagai lingkungan, seperti beragam sistem operasi atau versi bahasa pemrograman.
Alih-alih membuat alur kerja terpisah untuk setiap kombinasi, pembuatan dengan matriks memungkinkan Anda menentukan sekumpulan variabel, lalu GitHub Actions akan secara otomatis menjalankan pekerjaan Anda untuk setiap kemungkinan kombinasi variabel tersebut.
Mengapa Menggunakan Pembuatan dengan Matriks?
Pembuatan dengan matriks sangat berguna untuk:
- Pengujian Lintas Platform: Memastikan aplikasi Anda berfungsi di Windows, macOS, dan Linux.
- Kompatibilitas Multi Versi: Menguji dengan berbagai versi Node.js, Python, atau basis data Anda.
- Eksekusi Paralel: Menjalankan semua pengujian ini secara bersamaan sehingga menghemat banyak waktu.
Fitur ini membantu Anda memperoleh cakupan pengujian yang lebih luas secara efisien.
Sintaks Dasar Matriks
Anda menentukan matriks di bagian strategy suatu pekerjaan. Di dalam strategy.matrix, Anda mencantumkan satu atau beberapa variabel, masing-masing dengan larik nilai.
GitHub Actions kemudian membuat satu pekerjaan untuk setiap kombinasi. Mari lihat tampilannya:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14, 16, 18]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testContoh: Beberapa Versi Node.js
Pada potongan kode sebelumnya, kita menentukan variabel node-version dengan tiga nilai: 14, 16, dan 18.
Definisi pekerjaan tunggal ini akan memicu tiga pekerjaan terpisah, masing-masing berjalan di ubuntu-latest tetapi menggunakan versi Node.js yang berbeda. Dengan demikian, proyek Anda dipastikan berfungsi pada semua versi tersebut.
Menggabungkan Beberapa Variabel Matriks
Anda tidak terbatas pada satu variabel saja! Anda dapat menggabungkan beberapa variabel dalam matriks. Misalnya, Anda mungkin ingin menguji berbagai sistem operasi dengan berbagai versi Node.js.
Tambahkan lebih banyak pasangan kunci-nilai di bawah strategy.matrix. Jumlah total pekerjaan adalah hasil kali jumlah nilai untuk setiap variabel.
Contoh: Matriks OS dan Node.js
Berikut cara menyiapkan matriks untuk menguji di Ubuntu dan Windows, menggunakan Node.js versi 16 dan 18.
Konfigurasi ini akan membuat 2 (OS) * 2 (versi Node.js) = 4 pekerjaan terpisah.
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testMenyesuaikan Kombinasi dengan 'include'
Terkadang Anda memerlukan kombinasi tertentu yang tidak tercakup oleh hasil kali Kartesius bawaan, atau ingin menambahkan variabel tambahan untuk pembuatan tertentu. Gunakan include untuk menambahkan entri matriks baru.
Misalnya, Anda mungkin ingin menjalankan pengujian tambahan hanya di Ubuntu dengan Node.js 14, atau meneruskan variabel lingkungan tertentu ke kombinasi OS/versi tertentu.
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18]
include:
- os: ubuntu-latest
node-version: 14
test-suite: 'full'Mengecualikan Kombinasi Tertentu
Bagaimana jika Anda memiliki kombinasi yang diketahui akan gagal atau tidak relevan bagi proyek Anda? Kata kunci exclude memungkinkan Anda menghapus konfigurasi tertentu dari matriks.
Hal ini membantu Anda menghindari eksekusi pekerjaan yang tidak perlu dan berfokus pada kasus pengujian yang relevan.
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18, 20]
exclude:
- os: windows-latest
node-version: 16Mengakses Variabel Matriks
Dalam langkah pekerjaan Anda, Anda dapat mengakses nilai variabel matriks saat ini menggunakan sintaks ${{ matrix.variable_name }}. Hal ini penting untuk mengonfigurasi alat atau menjalankan perintah yang khusus untuk setiap kombinasi matriks.
Misalnya, ${{ matrix.os }} secara dinamis menetapkan sistem operasi pelaksana, sedangkan ${{ matrix.node-version }} mengonfigurasi aksi penyiapan Node.js.
Penerapan Praktis
Pembuatan dengan matriks sangat berguna untuk:
- Pengembangan Pustaka: Menguji dengan beberapa versi dependensi.
- Proyek Multi Bahasa: Membuat dan menguji komponen yang ditulis dalam berbagai bahasa atau menggunakan berbagai kompilator.
- Kompatibilitas Peramban: Jika menggunakan alat yang mendukungnya, menguji aplikasi web di berbagai peramban.
Fitur ini menyederhanakan skenario pengujian yang kompleks menjadi alur kerja yang ringkas dan mudah dipelihara.
Tantangan Pembuatan Matriks
Pertimbangkan alur kerja GitHub Actions yang menggunakan strategi matriks. Matriks tersebut ditentukan sebagai berikut:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: [3.8, 3.9]
exclude:
- os: macos-latest
python-version: 3.8
Berapa banyak pekerjaan yang akan dibuat oleh konfigurasi matriks ini?
Ringkasan: Pembuatan dengan Matriks
Kerja bagus! Anda telah mempelajari Pembuatan dengan Matriks GitHub Actions.
- Fitur ini memungkinkan Anda menjalankan pekerjaan untuk berbagai kombinasi variabel (OS, versi bahasa, dan sebagainya).
- Ditentukan menggunakan
strategy.matrixdalam suatu pekerjaan. includemenambahkan kombinasi tertentu, sedangkanexcludemenghapusnya.- Variabel diakses melalui
${{ matrix.variable_name }}.
Pembuatan dengan matriks sangat penting untuk pengujian yang efisien dan menyeluruh di berbagai lingkungan. Teruslah berlatih untuk menguasainya!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Build Matriks untuk Berbagai Lingkungan” gratis?
Ya — teks lengkap “Build Matriks untuk Berbagai Lingkungan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Build Matriks untuk Berbagai Lingkungan”?
Manfaatkan strategi matriks untuk menjalankan tugas secara paralel pada berbagai versi bahasa, sistem operasi, atau konfigurasi. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Build Matriks untuk Berbagai Lingkungan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Build Matriks untuk Berbagai Lingkungan
- Menyimpan Dependensi dalam Tembolok demi Kecepatan
- Alur Kerja dan Actions yang Dapat Digunakan Kembali
- Eksekusi Kondisional dan Dependensi Tugas