MATERI 20 DARI 28
Static analysis dan quality gates di CI
Gabungkan formatter, linter, type checking, test, dependency audit, dan security checks sebagai gate.
Tujuan pembelajaran
- Menyusun pipeline yang cepat.
- Memisahkan warning dan blocker.
- Menjaga output dapat ditindaklanjuti.
Konsep utama
Shift left
Temukan masalah sebelum merge.
Defense in depth
Tidak ada satu scanner yang menemukan semua kelas bug.
Alur kerja teknis
- Tulis tujuan dan acceptance criteria.
- Buat perubahan kecil yang dapat ditinjau.
- Jalankan test dan baca diff sebelum menerima hasil AI.
Contoh implementasi
Pipeline quality gate sederhana
set -euo pipefail
php -l public/index.php
node --check public/assets/js/site.js
python -m compileall src
npm test
composer audit
npm audit --omit=devAspek keamanan
- Pin versi tool CI.
- Jangan menonaktifkan rule hanya agar pipeline hijau tanpa alasan.
- Simpan artifact/log secukupnya tanpa secret.
Kesalahan umum
- Menerima kode AI tanpa membaca diff dan memahami alur data.
- Menguji hanya happy path dan mengabaikan input salah atau batas nilai.
- Menyimpan secret, token, atau data nyata di prompt dan source code.
Pengujian dan verifikasi
- Jalankan contoh dengan input normal.
- Ulangi dengan input kosong, tipe salah, dan nilai batas.
- Pastikan error tidak membocorkan secret atau detail internal.
Latihan
- Modifikasi contoh dengan satu kebutuhan baru dan tulis acceptance criteria-nya.
- Tambahkan satu negative test lalu jelaskan risiko yang dicegah.
Checklist
- Tujuan dan batas pekerjaan jelas.
- Input divalidasi di server.
- Secret tidak berada di source/prompt.
- Test lulus dan diff sudah dibaca.
Rangkuman
Gabungkan formatter, linter, type checking, test, dependency audit, dan security checks sebagai gate.