GitHub Actions adalah solusi CI/CD (Continuous Integration / Continuous Deployment) yang memungkinkan Anda untuk mengotomatiskan, menyesuaikan, dan menjalankan alur kerja pengembangan perangkat lunak Anda langsung di repositori Anda.
GitHub Actions tutotial
Berikut ini adalah panduan dasar untuk GitHub Actions:
-
Memulai: Pertama, Anda perlu memiliki akun GitHub dan repositori di mana Anda ingin menyiapkan alur kerja Anda.
-
Alur Kerja: Di GitHub, alur kerja adalah proses otomatis yang dapat dikonfigurasi yang Anda atur di repositori Anda untuk membangun, menguji, mengemas, merilis, atau men-deploy proyek apa pun di GitHub. Alur kerja terdiri dari satu atau lebih pekerjaan dan dapat dipicu oleh event GitHub.
-
File Alur Kerja: Alur kerja didefinisikan dalam direktori
.github/workflows
di repositori Anda. Mereka disimpan sebagai file YAML. -
Event: Alur kerja dapat dipicu oleh event GitHub (seperti push, pull request dll.), pada jadwal (seperti cron job), atau secara eksternal melalui webhook dispatch repositori.
-
Aksi: Aksi adalah blok bangunan yang paling portabel dan terkecil dari alur kerja. Anda dapat membuat aksi Anda sendiri atau menggunakan aksi yang dibagikan oleh komunitas GitHub.
Berikut adalah contoh dari alur kerja GitHub Actions yang sederhana:
name: Contoh alur kerja on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Jalankan skrip satu baris run: echo Hello, world! - name: Jalankan skrip multi-baris run: | echo Tambahkan aksi lainnya untuk membangun, echo menguji, dan men-deploy proyek Anda.
Berikut adalah apa yang dilakukan oleh alur kerja ini:
-
name
: Nama dari alur kerja ini adalahContoh alur kerja
. -
on
: Alur kerja ini memicu pekerjaanbuild
setiap kali ada eventpush
ke branchmain
. -
jobs
: Pekerjaanbuild
adalah satu-satunya pekerjaan dalam alur kerja ini. Pekerjaan ini dijalankan pada versi terbaru dari Ubuntu. -
steps
: Ini adalah urutan tugas yang akan dieksekusi sebagai bagian dari pekerjaan.-
Langkah pertama menggunakan aksi
actions/checkout@v2
, yang merupakan aksi yang sudah ditentukan oleh GitHub yang mengecek repositori Anda. -
Langkah kedua menjalankan skrip satu baris yang mencetak “Hello, world!”.
-
Langkah ketiga menjalankan skrip multi-baris yang mencetak dua baris teks.
-
Hasil Workflow:
Bagaimana jika ingin menjalankan code file yang sudah dibuat didalam repository?
Misalnya code file python (main.py).
Untuk menjalankan file Python (misalnya main.py
) di GitHub Actions, Anda harus membuat workflow yang mendefinisikan langkah-langkah tersebut. Berikut adalah contoh workflow yang akan menjalankan main.py
setiap kali ada push ke branch main
.
name: Python application on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Run main.py run: python main.py
Berikut penjelasan tentang apa yang dilakukan oleh kode tersebut:
-
name
: Nama dari workflow ini adalahPython application
. -
on
: Workflow ini akan dijalankan setiap kali ada push ke branchmain
. -
jobs
: Ada satu job dalam workflow ini, yaitubuild
. -
runs-on
: Job ini akan dijalankan pada runner dengan sistem operasi ubuntu-latest. -
steps
: Langkah-langkah yang akan dijalankan dalam job ini.-
Langkah pertama menggunakan aksi
actions/checkout@v2
untuk mengambil kode dari repository GitHub Anda. -
Langkah kedua menggunakan aksi
actions/setup-python@v2
untuk menyiapkan Python 3.8. -
Langkah ketiga menginstal semua dependensi Python yang diperlukan untuk menjalankan aplikasi Anda. Jika Anda memiliki file
requirements.txt
di repositori Anda, semua paket yang tercantum dalam file tersebut akan diinstal. -
Langkah keempat menjalankan file Python
main.py
.
-
Harap dicatat bahwa dalam langkah “Install dependencies”, asumsinya adalah bahwa Anda memiliki file requirements.txt
yang berisi semua dependensi yang dibutuhkan oleh script Python Anda. Jika tidak, Anda perlu menyesuaikan langkah tersebut sesuai kebutuhan Anda.
Simpan file YAML ini dalam direktori .github/workflows
di repositori GitHub Anda. Setelah Anda melakukan commit dan push perubahan ini ke branch main
, workflow ini akan dijalankan secara otomatis setiap kali ada push ke branch tersebut.
File requirements.txt
berisi daftar semua paket Python yang dibutuhkan oleh aplikasi Anda untuk berjalan. Setiap baris dalam file ini berisi satu paket dan versi spesifiknya yang dibutuhkan. Berikut adalah contoh isi dari file requirements.txt
:
numpy==1.21.0 pandas==1.3.0 scikit-learn==0.24.2
Dalam contoh ini, file requirements.txt
menentukan bahwa aplikasi Anda memerlukan paket numpy versi 1.21.0, pandas versi 1.3.0, dan scikit-learn versi 0.24.2.
File requirements.txt
biasanya ditempatkan di direktori root dari repositori Anda. Jadi struktur direktori repositori Anda mungkin terlihat seperti ini:
Dengan struktur ini, GitHub Actions akan secara otomatis menemukan dan membaca file requirements.txt
saat menjalankan step Install dependencies
dalam workflow Anda. Jika file requirements.txt
Anda berada di lokasi lain dalam repositori Anda, Anda perlu menyesuaikan perintah pip install -r
dengan path yang tepat ke file tersebut.
requirements.txt
Hasil Workflow setelah modifikasi:
Anda dapat menambahkan kompleksitas lebih dengan menggunakan jenis aksi yang berbeda, variabel lingkungan, dan sintaks kontrol pekerjaan, di antara hal lainnya. Untuk informasi yang lebih detail, Anda harus memeriksa dokumentasi GitHub Actions.
Perlu diingat bahwa sampai pengetahuan saya dipotong pada September 2021, GitHub Actions gratis untuk repositori publik, tetapi ada biaya untuk repositori pribadi. Periksa detail penentuan harga GitHub terbaru untuk informasi yang paling akurat.