Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio

Cara Membuat CI Otomatis untuk Proyek Python Menggunakan GitHub Actions

  • October 16, 2026
  • oleh Avrillia Zahra Khoirun Nisa

Dalam pengembangan aplikasi, perubahan kode perlu diperiksa untuk memastikan tidak menimbulkan kesalahan pada fitur yang sudah berjalan. Namun, menjalankan pengujian secara manual setiap kali ada perubahan dapat memakan waktu, terutama ketika proyek mulai berkembang.

Salah satu cara untuk mengatasi masalah tersebut adalah dengan menerapkan Continuous Integration (CI). Dengan bantuan GitHub Actions, pengujian kode Python dapat dijalankan secara otomatis setiap kali perubahan dikirim ke repository GitHub.

Tutorial ini akan membahas cara membuat pipeline CI sederhana menggunakan Python, pytest, dan GitHub Actions. Praktik dilakukan menggunakan repository GitHub dan runner yang disediakan GitHub, sehingga tidak memerlukan server atau VPS sendiri.

Mengapa Continuous Integration Diperlukan dalam Pengembangan Python?

Ketika mengembangkan aplikasi, kesalahan kecil pada satu bagian kode dapat memengaruhi bagian lainnya. Misalnya, perubahan pada fungsi perhitungan dapat menyebabkan hasil yang sebelumnya benar menjadi keliru.

Jika pengujian hanya dilakukan secara manual, pengembang mungkin melewatkan beberapa skenario atau lupa menguji kembali fungsi yang terdampak oleh perubahan kode.

Continuous Integration membantu mengurangi risiko tersebut dengan menjalankan serangkaian pemeriksaan secara otomatis. Setiap perubahan yang dikirim ke repository dapat diuji sebelum diteruskan ke tahap pengembangan berikutnya.

GitHub Actions menyediakan fasilitas untuk menjalankan workflow berdasarkan peristiwa tertentu, seperti push dan pull_request. Workflow tersebut dapat mengatur lingkungan Python, memasang dependensi, dan menjalankan pengujian tanpa perlu menyiapkan mesin CI sendiri.

Dengan demikian, pengembang dapat mengetahui lebih cepat apakah perubahan kode berhasil melewati pengujian atau masih memiliki masalah.

Bagaimana Membuat CI Otomatis untuk Proyek Python?

1. Menyiapkan Lingkungan Pengembangan

Sebelum memulai, siapkan beberapa kebutuhan berikut:

  • Python yang sudah terpasang di komputer.
  • Git untuk mengelola perubahan kode.
  • Akun GitHub.
  • Editor kode, seperti Visual Studio Code.
  • Koneksi internet untuk mengunggah proyek dan menjalankan workflow.

GitHub Actions akan menjalankan pengujian pada runner yang disediakan GitHub. Oleh karena itu, spesifikasi laptop tidak perlu tinggi karena proses CI utama tidak dijalankan di komputer lokal.

2. Membuat Proyek Python Sederhana

Sebagai contoh, kita akan membuat proyek kalkulator sederhana dengan fungsi penjumlahan. Proyek ini dipilih agar alur CI mudah dipahami sebelum diterapkan pada aplikasi yang lebih kompleks.

Buat folder bernama python-ci-demo, kemudian susun struktur direktori seperti berikut:

python-ci-demo/
├── calculator.py
├── test_calculator.py
└── .github/
    └── workflows/
        └── python-ci.yml

Buat file calculator.py dengan kode berikut:

def add(a, b):
    return a + b

Fungsi add() menerima dua nilai dan mengembalikan hasil penjumlahannya. Fungsi ini nantinya akan diuji secara otomatis menggunakan pytest.

3. Membuat Pengujian Otomatis dengan Pytest

Setelah membuat fungsi utama, langkah berikutnya adalah menyiapkan pengujian untuk memastikan fungsi tersebut menghasilkan nilai yang sesuai.

Buat file test_calculator.py:

from calculator import add


def test_add():
    assert add(2, 3) == 5


def test_add_negative():
    assert add(-2, -3) == -5


def test_add_zero():
    assert add(5, 0) == 5

Pada contoh tersebut, terdapat tiga pengujian yang mencakup penjumlahan bilangan positif, bilangan negatif, dan bilangan nol.

Pernyataan assert digunakan untuk membandingkan hasil fungsi dengan nilai yang diharapkan. Jika hasilnya sesuai, pengujian dinyatakan berhasil. Sebaliknya, jika hasilnya berbeda, pytest akan melaporkan kegagalan.

Sebelum mengintegrasikannya dengan GitHub Actions, pengujian dapat dijalankan secara lokal.

Buka terminal pada direktori proyek, kemudian jalankan:

python -m pip install pytest
python -m pytest -v

Jika seluruh pengujian berhasil, terminal akan menampilkan ringkasan yang menunjukkan bahwa ketiga test telah lolos.

Pengujian lokal ini membantu memastikan bahwa kode dan test sudah benar sebelum pipeline CI dijalankan.

4. Membuat Workflow GitHub Actions

Tahap utama dari tutorial ini adalah membuat workflow yang mengatur proses pengujian otomatis.

Di dalam folder proyek, buat direktori .github/workflows jika belum tersedia. Kemudian buat file bernama python-ci.yml.

Isi file tersebut dengan konfigurasi berikut:

name: Python CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

permissions:
  contents: read

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install pytest

      - name: Run tests
        run: python -m pytest -v

Konfigurasi tersebut mendefinisikan workflow bernama Python CI yang berjalan ketika ada perubahan melalui push atau pull_request menuju branch main.

Berikut penjelasan bagian penting dalam konfigurasi tersebut.

  • on

Menentukan peristiwa yang memicu workflow. Pada contoh ini, workflow berjalan ketika perubahan dikirim ke branch main atau ketika pull request menargetkan branch tersebut.

  • permissions

Membatasi izin token workflow agar hanya memiliki akses baca terhadap isi repository. Untuk pengujian sederhana, izin ini sudah memadai.

  • runs-on: ubuntu-latest

Menentukan lingkungan eksekusi yang digunakan. GitHub akan menyediakan runner berbasis Ubuntu untuk menjalankan seluruh langkah CI.

  • actions/checkout

Mengambil isi repository agar file proyek tersedia di lingkungan runner.

  • actions/setup-python

Menyiapkan versi Python yang akan digunakan selama proses pengujian. Pada contoh ini, Python yang dipilih adalah versi 3.12.

  • Install dependencies

Memasang pytest, yaitu library yang digunakan untuk menjalankan pengujian otomatis.

Mau Kuasai Cara Membuat CI Otomatis untuk Proyek Python Menggunakan GitHub Actions Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

  • Run tests

Menjalankan seluruh test menggunakan perintah python -m pytest -v. Jika terdapat pengujian yang gagal, langkah ini akan menghasilkan status gagal dan memengaruhi status keseluruhan job.

Versi action pada contoh mengikuti versi yang ditetapkan dalam konfigurasi. Untuk proyek baru, periksa dokumentasi resmi GitHub Actions dan sesuaikan versi action yang digunakan bila diperlukan.

5. Mengunggah Proyek ke GitHub

Setelah semua file tersedia, buat repository baru di GitHub dengan nama python-ci-demo.

Jika repository dibuat melalui website GitHub, kamu dapat mengunggah proyek menggunakan Git melalui terminal.

Jalankan perintah berikut dari direktori proyek:

git commit -m "Add Python CI project"
git branch -M main
git remote add origin https://github.com/USERNAME/python-ci-demo.git
git push -u origin main

Ganti USERNAME dengan username GitHub milikmu dan pastikan URL repository sesuai dengan repository yang telah dibuat.

Perintah tersebut berfungsi untuk menginisialisasi Git, memasukkan file ke dalam commit, menetapkan branch utama, menghubungkan repository lokal dengan GitHub, dan mengirimkan perubahan ke repository jarak jauh.

Jika Git sudah terhubung dengan repository sebelumnya, tidak perlu menjalankan kembali seluruh perintah inisialisasi. Cukup lakukan commit dan push sesuai kondisi repository.

6. Memeriksa Hasil Workflow

Setelah proses push berhasil, GitHub Actions akan mendeteksi perubahan dan menjalankan workflow yang telah dibuat.

Untuk memeriksa hasilnya:

  1. Buka repository proyek di GitHub.
  2. Pilih tab Actions.
  3. Cari workflow bernama Python CI.
  4. Buka proses yang berjalan berdasarkan commit terbaru.
  5. Pilih job test untuk melihat detail setiap langkah.

Jika seluruh proses berjalan dengan baik, langkah checkout, penyiapan Python, instalasi dependensi, dan pengujian akan selesai tanpa kesalahan.

Pada bagian pengujian, hasilnya diharapkan menunjukkan bahwa ketiga test berhasil dijalankan.

Status hijau menandakan workflow berhasil diselesaikan, sedangkan status merah menunjukkan bahwa terdapat langkah yang gagal dan perlu diperiksa lebih lanjut.

7. Menguji Workflow Ketika Terjadi Kesalahan

Untuk memastikan CI benar-benar bekerja, kita perlu menguji kondisi ketika kode tidak memenuhi hasil yang diharapkan.

Buka file calculator.py, lalu ubah fungsi penjumlahan menjadi:

def add(a, b):
    return a - b

Perubahan ini sengaja dibuat agar fungsi menghasilkan pengurangan, bukan penjumlahan.

Simpan perubahan tersebut, kemudian jalankan:

git add calculator.py
git commit -m "Test CI failure"
git push

Setelah perubahan dikirim, GitHub Actions akan menjalankan workflow kembali.

Karena hasil fungsi tidak lagi sesuai dengan ekspektasi pada test, pengujian akan gagal. GitHub akan menampilkan status gagal pada job test, disertai informasi mengenai test yang tidak lolos.

Kembalikan fungsi ke implementasi yang benar:

def add(a, b):
    return a + b

Kemudian commit dan push kembali. Jika seluruh test lolos, workflow akan kembali berstatus berhasil.

Percobaan ini memperlihatkan fungsi utama CI: perubahan kode diperiksa secara otomatis dan kesalahan dapat diketahui sebelum perubahan tersebut diteruskan ke tahap berikutnya.

8. Memahami Batasan CI yang Dibuat

Pipeline yang dibangun dalam tutorial ini masih tergolong sederhana. Workflow baru memeriksa apakah fungsi Python lolos dari pengujian yang telah ditulis.

Artinya, status berhasil tidak otomatis menjamin bahwa seluruh aplikasi bebas dari bug. Kualitas pemeriksaan tetap bergantung pada cakupan test dan jenis validasi yang dijalankan.

Untuk mengembangkan pipeline lebih lanjut, beberapa peningkatan yang dapat dilakukan meliputi:

  • Menambahkan lebih banyak unit test untuk berbagai skenario.
  • Memasang dependensi proyek dari file requirements.txt.
  • Menambahkan pemeriksaan kualitas kode menggunakan linter seperti Ruff.
  • Menjalankan pengujian pada beberapa versi Python.
  • Mengintegrasikan CI dengan proses build atau deployment setelah tahap pengujian berjalan dengan baik.

Peningkatan tersebut dapat dilakukan secara bertahap sesuai kebutuhan proyek. Untuk pemula, memulai dari satu job pengujian sudah cukup untuk memahami dasar otomatisasi CI.

Kesimpulan

GitHub Actions dapat digunakan untuk membangun Continuous Integration sederhana tanpa perlu menyiapkan server CI sendiri. Dengan menggabungkan Python, pytest, dan workflow YAML, pengujian dapat berjalan otomatis setiap kali perubahan dikirim ke repository.

Melalui praktik ini, pengembang dapat memahami alur dasar CI, mulai dari menyiapkan test, mengonfigurasi workflow, mengunggah kode, hingga memeriksa hasil pengujian dan menangani kegagalan.

Meskipun pipeline yang dibuat masih sederhana, pendekatan ini merupakan langkah awal yang berguna sebelum menerapkan proses CI/CD yang lebih lengkap pada proyek Python.

Penulis:

Avrillia Zahra Khoirun Nisa

Mau Kuasai Cara Membuat CI Otomatis untuk Proyek Python Menggunakan GitHub Actions Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

Tags: automated testingautomation testingCICI pipelineCI/CDcontinuous integrationdevopsgitgithubgithub actionspipelinepytestpythonunit testingVersion ControlworkflowYAML
Previous Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Cara Membuat CI Otomatis untuk Proyek Python Menggunakan GitHub Actions
  • Cara Konfigurasi Debian 13 sebagai Router Gateway dan Server Layanan (DNS,Web,DHCP)
  • Mendeteksi Percobaan Login SSH Gagal Menggunakan Fail2ban
  • Analisis Perilaku Pelanggan Menggunakan Data: Dari Eksplorasi hingga Insight dan Rekomendasi Bisnis
  • Ribuan Views, Nol Transaksi: Strategi Digital Marketing yang Efek

Arsip

  • October 2026
  • September 2026
  • August 2026
  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP python security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2026 | Privacy Policy | Site Map | Portfolio Magang | Butuh tim kami langsung yang mengerjakan? Lihat layanan implementasi →

All Right Reserved

WhatsApp us