Lewati ke konten utama

F5 · Modul 04

GitHub Actions: tes setiap push

34 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. Level 5

    Pendalaman

Intinya

  • Workflow adalah berkas YAML di .github/workflows/: peristiwa (push, PR) → job di mesin bersih → step berurutan; kode keluar bukan nol = merah.
  • CI proyek ini: checkout, Python dari .python-version dengan cache pip, pasang dari lock dengan hash, pytest, dan pemeriksa repo (lock, notebook).
  • Setiap workflow: permissions: contents: read, timeout-minutes di setiap job, concurrency yang membatalkan run usang, versi Python dalam kutip.
  • Repo publik: runner standar gratis; repo privat akun Free: kuota menit bulanan, dan setiap job dibulatkan ke menit penuh.
  • CI merah dibaca dari galat pertama, lalu diulang di laptop dengan perintah yang sama.

Sebelum mulai

±3 jam (termasuk lab di komputermu).

Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.

Hasil belajar: setelah modul ini kamu bisa menulis workflow GitHub Actions yang menjalankan pytest di mesin bersih setiap push dan PR; memilih pemicu; memakai cache pip, permissions, timeout-minutes, dan concurrency; menghindari jebakan YAML; menghitung menit tertagih; membaca hasil tes JUnit dan CI yang merah; serta memeriksa workflow yang diberikan sebagai teks atau data dengan Python.

Proyek: .github/workflows/ci.yml hijau, wajib lulus sebelum merge, dan lencana CI di README (kontrak proyek).

Istilah di modul ini (32)

Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course

Bahan modul

Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.

  • 8 contoh kode
  • 6 berkas latihan + tes
Lihat isi zip
  • BACA-DULU.txt
  • contoh_f5_04_89.py
  • contoh_f5_04_267.py
  • contoh_f5_04_430.py
  • contoh_f5_04_447.py
  • contoh_f5_04_580.py
  • contoh_f5_04_758.py
  • contoh_f5_04_791.py
  • contoh_f5_04_1016.py
  • test_f5_04_6.py
  • test_f5_04_2.py
  • test_f5_04_5.py
  • test_f5_04_1.py
  • test_f5_04_3.py
  • test_f5_04_4.py