Apa itu GitHub Actions
GitHub Actions adalah platform otomatisasi yang kuat yang terintegrasi ke dalam GitHub yang memungkinkan pengembang untuk menyederhanakan dan mengoptimalkan proses pengembangan perangkat lunak mereka. Alat yang fleksibel ini memungkinkan Anda membuat alur kerja kustom yang mengotomatisasi tugas-tugas berulang, seperti integrasi berkelanjutan (CI), penyebaran berkelanjutan (CD), dan pengujian, langsung di dalam repositori Anda.
GitHub Actions menyediakan cara yang mulus untuk mendefinisikan, mengelola, dan menjalankan alur kerja secara langsung di dalam repositori GitHub Anda. Ini dirancang untuk bekerja dengan platform GitHub, sehingga mudah untuk diintegrasikan dengan fitur GitHub lainnya, seperti pelacakan isu, permintaan tarik, dan tinjauan kode.
Dengan memanfaatkan GitHub Actions, Anda dapat:
- Menghemat waktu dan mengurangi kesalahan dengan mengotomatisasi tugas-tugas berulang.
- Meningkatkan siklus pengembangan perangkat lunak Anda dengan alur kerja CI/CD.
- Meningkatkan kolaborasi dan kualitas kode dengan menerapkan standar kode dan praktik terbaik secara otomatis.
- Mengintegrasikan dengan alat dan layanan pihak ketiga, seperti Docker, Node.js, dan AWS.
- Menyesuaikan dan memperluas alur kerja untuk memenuhi kebutuhan spesifik Anda.
Komponen-Komponen GitHub Actions
Komponen utama dari GitHub Actions meliputi:
-
Event
Suatu aktivitas khusus yang memicu alur kerja GitHub Actions. Contoh dari kejadian termasuk pengiriman ke repositori, permintaan tarik, komentar pada isu, atau interval terjadwal. -
Job
Kumpulan tugas atau langkah-langkah yang dijalankan pada pelari yang sama (mesin virtual) dalam suatu alur kerja. Pekerjaan dapat dijalankan secara berurutan atau paralel, tergantung pada dependensinya. -
Action
Sebuah bagian kode yang dapat digunakan sebagai langkah dalam pekerjaan. Tindakan dapat dibuat oleh Anda, komunitas, atau GitHub. Mereka dapat ditemukan di GitHub Marketplace dan dapat diintegrasikan ke dalam alur kerja Anda. -
Menyiapkan Repositori Anda
Sebelum Anda dapat mulai menggunakan GitHub Actions, Anda perlu memastikan bahwa repositori Anda diatur dengan benar. Untuk melakukannya, ikuti langkah-langkah berikut:
- Buat repositori GitHub baru atau navigasi ke yang sudah ada.
- Pastikan repositori Anda memiliki folder
.github
di direktori root. Jika tidak ada, buat satu. - Di dalam folder
.github
, buat folder baru bernamaworkflows
. Ini adalah tempat Anda akan menyimpan semua file alur kerja GitHub Actions Anda.
Menulis Tindakan Anda
Anatomi Berkas Alur Kerja
Sebuah alur kerja didefinisikan menggunakan file YAML (Yet Another Markup Language). File-file ini disimpan di folder .github/workflows
di dalam repositori Anda. Sebuah file alur kerja yang tipikal terdiri dari komponen-komponen berikut:
-
Name
Nama yang dapat dibaca oleh manusia untuk alur kerja Anda. -
Triggers
Kejadian yang memicu alur kerja (misalnya, push, pull_request, atau schedule).
-Jobs
Sejumlah tugas yang akan dijalankan oleh alur kerja Anda.
- Steps
Tugas-tugas individu dalam pekerjaan. Langkah-langkah dapat berupa tindakan yang telah ditentukan sebelumnya atau skrip khusus.
Sintaks dan Struktur Dasar
Berikut adalah contoh file alur kerja sederhana yang mencetak "Hello, World!" ketika kejadian push
terjadi pada cabang main
:
name: My First Workflow
on:
push:
branches:
- main
jobs:
hello_world:
runs-on: ubuntu-latest
steps:
- name: Print message
run: echo "Hello, World!"
Dalam contoh ini, alur kerja dipicu oleh kejadian push
pada cabang main
. Pekerjaan hello_world
dieksekusi pada versi terbaru lingkungan virtual Ubuntu, dan memiliki satu langkah yang menjalankan perintah echo "Hello, World!"
.
Menggunakan Tindakan yang Ditentukan Sebelumnya
GitHub Actions menyediakan berbagai tindakan yang ditentukan sebelumnya yang dapat digunakan untuk melakukan tugas-tugas umum. Tindakan-tindakan ini tersedia di GitHub Marketplace dan dapat ditambahkan ke alur kerja Anda hanya dengan beberapa baris YAML. Beberapa tindakan yang ditentukan sebelumnya yang populer meliputi:
actions/checkout
: Memeriksa repositori Anda ke pelari.actions/setup-node
: Menyiapkan lingkungan Node.js.actions/cache
: Menyimpan cache dependensi dan hasil build untuk meningkatkan waktu eksekusi alur kerja.
Berikut adalah contoh alur kerja yang menggunakan tindakan yang ditentukan sebelumnya untuk menyiapkan lingkungan Node.js, menginstal dependensi, dan menjalankan pengujian:
name: Node.js CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
steps:
- uses: actions/checkout@v2
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm test
Dalam contoh ini, alur kerja dipicu oleh kejadian push
dan pull_request
. Pekerjaan build
menyiapkan lingkungan Node.js dengan versi yang ditentukan dan menjalankan perintah npm ci
dan npm test
.
Harga
GitHub Actions menawarkan tier gratis dengan resource terbatas untuk repositori publik dan model pay-as-you-go untuk repositori pribadi.
Untuk repositori publik, Anda mendapatkan menit tak terbatas dan 20 pekerjaan yang berjalan secara bersamaan.
Untuk repositori pribadi, tier gratis menyediakan 2.000 menit per bulan dan 5 pekerjaan yang berjalan secara bersamaan. Menit dan resource tambahan dapat dibeli dengan tarif yang bervariasi, tergantung pada jenis akun dan penggunaannya. Untuk informasi harga yang lebih detail, kunjungi halaman harga GitHub Actions.
Referensi