Pengantar
Fitur yang kuat dari GitHub Actions adalah kemampuan untuk membuat tindakan kustom, yang dapat dibagikan dan digunakan kembali di beberapa proyek, mendorong kolaborasi dan meningkatkan produktivitas.
Dalam artikel ini, saya akan membahas jenis tindakan kustom yang dapat dibangun, dan memandu Anda melalui proses membuat tindakan kustom Anda sendiri.
Jenis Tindakan Kustom
Pada bab ini, saya akan menjelajahi tiga jenis utama tindakan kustom yang dapat dibangun untuk GitHub Actions: Tindakan Kontainer Docker, Tindakan JavaScript, dan Tindakan Langkah Jalankan Gabungan. Setiap jenis memiliki kelebihan dan kasus penggunaan masing-masing, yang akan kita bahas secara detail.
Tindakan Kontainer Docker
Tindakan Kontainer Docker didasarkan pada gambar Docker, sehingga menjadi pilihan yang sangat baik untuk menggabungkan bahasa, alat, atau lingkungan yang tidak didukung secara alami oleh pelari GitHub Actions. Tindakan ini dijalankan di dalam kontainer yang terpisah, memberikan isolasi dari lingkungan host.
Keuntungan
- Mendukung bahasa atau alat apa pun dengan gambar Docker yang kompatibel
- Menawarkan isolasi lingkungan, mengurangi risiko konflik antar ketergantungan
Kerugian
- Eksekusi lebih lambat karena overhead memulai kontainer baru
- Memerlukan pengetahuan Docker untuk membuat dan memelihara Dockerfile
Kasus Penggunaan
- Menjalankan tindakan dengan versi bahasa atau alat tertentu yang tidak didukung oleh GitHub Actions
- Memastikan ketergantungan tidak berkonflik dengan lingkungan host
Tindakan JavaScript
Tindakan JavaScript ditulis dalam JavaScript atau TypeScript dan dieksekusi langsung di pelari GitHub Actions. Mereka menawarkan kinerja yang lebih baik dibandingkan dengan Tindakan Kontainer Docker, karena tidak memerlukan memulai kontainer terpisah.
Keuntungan
- Eksekusi lebih cepat, karena dieksekusi langsung di pelari GitHub Actions
- Pemeliharaan lebih mudah, karena tidak perlu Dockerfile
Kerugian
- Terbatas pada bahasa JavaScript atau TypeScript
- Tidak ada isolasi lingkungan, yang dapat menyebabkan konflik ketergantungan
Kasus Penggunaan
- Membangun tindakan sederhana dengan ketergantungan minimal
- Membuat tindakan yang perlu dieksekusi dengan cepat
Tindakan Langkah Jalankan Gabungan
Tindakan Langkah Jalankan Gabungan memungkinkan Anda menggabungkan beberapa langkah menjadi satu tindakan yang dapat digunakan kembali. Mereka dapat mencakup campuran perintah shell dan tindakan lainnya, sehingga cocok untuk membuat alur kerja yang dapat digunakan kembali dengan logika yang kompleks.
Keuntungan
- Dapat menggabungkan beberapa langkah dan tindakan menjadi satu unit
- Mendukung berbagai perintah shell dan GitHub Actions lainnya
Kerugian
- Terbatas pada perintah shell dan GitHub Actions yang sudah ada
- Dapat menjadi kompleks jika tidak terorganisir dengan baik
Kasus Penggunaan
- Menggabungkan beberapa langkah terkait untuk menyederhanakan file alur kerja
- Membuat bagian alur kerja yang dapat digunakan kembali untuk digunakan di beberapa proyek
Membuat Tindakan Kustom Anda
Pada bab ini, saya akan memandu Anda melalui proses membuat tindakan kustom pertama Anda. Saya akan memberikan panduan langkah demi langkah untuk mengembangkan tindakan, dan mengujinya secara lokal.
Mengembangkan Tindakan
- Pilih salah satu dari jenis tindakan kustom (Kontainer Docker, JavaScript, atau Langkah Jalankan Gabungan) dan buat file yang diperlukan untuk tindakan Anda:
- Untuk Tindakan Kontainer Docker
- Buat Dockerfile di akar repositori Anda.
- Tulis perintah Docker yang diperlukan untuk menyiapkan lingkungan, menginstal ketergantungan, dan menentukan titik masuk untuk tindakan Anda.
- Untuk Tindakan JavaScript
- Inisialisasi proyek Node.js baru dengan
npm init
atauyarn init
di akar repositori. - Instal ketergantungan yang diperlukan menggunakan
npm install
atauyarn add
. - Buat direktori
src
dan tulis kode JavaScript atau TypeScript tindakan Anda.
- Inisialisasi proyek Node.js baru dengan
- Untuk Tindakan Langkah Jalankan Gabungan
- Buat file
steps.yml
di akar repositori Anda. - Tentukan urutan perintah shell dan tindakan lainnya pada bagian
steps
dari file YAML.
- Buat file
- Implementasikan fungsionalitas tindakan Anda sesuai dengan tujuannya dan persyaratan. Pastikan menangani parameter masukan dan memberikan pesan kesalahan yang bermakna jika diperlukan.
Menguji Tindakan Secara Lokal
-
Buat alur kerja contoh di repositori Anda untuk menguji tindakan Anda. Di direktori
.github/workflows
, buat file YAML baru (mis.test-action.yml
). -
Konfigurasikan alur kerja contoh untuk menggunakan tindakan kustom Anda. Contohnya:
name: Test My Custom Action
on:
push:
jobs:
test-action:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Run My Custom Action
uses: ./ # Replace with your action's path
with:
input-param: "Example value" # Replace with your action's input parameters
- Commit perubahan Anda dan dorong ke repositori remote. Alur kerja contoh akan otomatis dijalankan pada acara dorong, memungkinkan Anda mengamati eksekusi tindakan kustom Anda.
Referensi