Traffine I/O

Bahasa Indonesia

2023-03-07

Tindakan Kustom dalam GitHub Actions

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.

https://docs.github.com/en/actions/creating-actions/about-custom-actions

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

  1. 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
    1. Buat Dockerfile di akar repositori Anda.
    2. Tulis perintah Docker yang diperlukan untuk menyiapkan lingkungan, menginstal ketergantungan, dan menentukan titik masuk untuk tindakan Anda.

https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action

  • Untuk Tindakan JavaScript
    1. Inisialisasi proyek Node.js baru dengan npm init atau yarn init di akar repositori.
    2. Instal ketergantungan yang diperlukan menggunakan npm install atau yarn add.
    3. Buat direktori src dan tulis kode JavaScript atau TypeScript tindakan Anda.

https://docs.github.com/en/actions/creating-actions/creating-a-javascript-action

  • Untuk Tindakan Langkah Jalankan Gabungan
    1. Buat file steps.yml di akar repositori Anda.
    2. Tentukan urutan perintah shell dan tindakan lainnya pada bagian steps dari file YAML.

https://docs.github.com/en/actions/creating-actions/creating-a-composite-action

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

  1. Buat alur kerja contoh di repositori Anda untuk menguji tindakan Anda. Di direktori .github/workflows, buat file YAML baru (mis. test-action.yml).

  2. Konfigurasikan alur kerja contoh untuk menggunakan tindakan kustom Anda. Contohnya:

.github/workflows/test-action.yml
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
  1. 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

https://docs.github.com/en/actions/creating-actions/about-custom-actions
https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action
https://docs.github.com/en/actions/creating-actions/creating-a-javascript-action
https://docs.github.com/en/actions/creating-actions/creating-a-composite-action

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!