Github Action Workflow tutorial

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:

  1. Memulai: Pertama, Anda perlu memiliki akun GitHub dan repositori di mana Anda ingin menyiapkan alur kerja Anda.

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

  3. File Alur Kerja: Alur kerja didefinisikan dalam direktori .github/workflows di repositori Anda. Mereka disimpan sebagai file YAML.

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

  5. 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 adalah Contoh alur kerja.

  • on: Alur kerja ini memicu pekerjaan build setiap kali ada event push ke branch main.

  • jobs: Pekerjaan build 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.

BACA JUGA:  Amazon Route 53: layanan, fitur, dan penggunaanya

Hasil Workflow:

Github Action Workflow Result #1

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 adalah Python application.

  • on: Workflow ini akan dijalankan setiap kali ada push ke branch main.

  • jobs: Ada satu job dalam workflow ini, yaitu build.

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

BACA JUGA:  Redis: Sistem Database NoSQL untuk Performa Tinggi

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:

Directory of Github Repository

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
requirements.txt
dengan path yang tepat ke file tersebut.

Hasil Workflow setelah modifikasi:

Github Action Workflow result #2

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.

Tinggalkan komentar