-
Masalah GitHub Actions
- Baru-baru ini banyak waktu dihabiskan untuk menulis ulang skrip CI dengan GitHub Actions. Sebelumnya menggunakan Earthly, tetapi karena dihentikan, kembali lagi ke GitHub Actions.
- CI itu kompleks, mencakup merge queue, beberapa runner, build Rust, image Docker, pengujian integrasi, dan lain-lain. Setiap kali PR digabung, banyak waktu CI yang terpakai.
- Sebagai praktik software yang baik, semua pengujian harus lulus, kesalahan kecil seharusnya diperbaiki secara otomatis, dan artefak yang diuji harus sama dengan yang dirilis. GitHub Actions memungkinkan hal ini, tetapi konfigurasinya rumit dan tidak konsisten.
-
Pemeriksaan status dan merge queue
- Merge queue GitHub menjalankan CI setelah melakukan rebase PR ke branch utama. Namun, CI harus dijalankan baik sebelum maupun sesudah masuk ke antrean, dan menyiapkan ini sulit.
- Solusinya adalah menetapkan nama job yang sama pada kedua tahap. Dengan begitu, kedua tahap harus sama-sama lulus.
-
Masalah keamanan
- Baru-baru ini sebuah GitHub Action yang populer disusupi. Sebagai tanggapan, ada anjuran untuk mengunci dependensi dengan hash, tetapi kebanyakan pengguna tidak melakukannya.
- Model keamanan GitHub rumit dan sulit dipahami. Anda bisa menetapkan izin default untuk
GITHUB_TOKEN, tetapi cara mencabut izin tidak jelas.
- Izin workflow tidak bergantung pada action itu sendiri, dan menaikkan izin di dalam kode terasa janggal.
-
Kombinasi Docker dan GitHub Actions
- Di GitHub Actions, pekerjaan bisa dijalankan di dalam container, tetapi ini menimbulkan masalah seperti izin file dan perubahan lokasi direktori
$HOME.
- Field container memiliki banyak batasan, sehingga tidak mungkin menimpa entrypoint atau menjalankan hanya sebagian langkah di dalam container.
-
Mengembangkan workflow dengan YAML
- Menulis logika dalam YAML bisa menjadi rumit dan mudah menimbulkan kesalahan. IDE RustRover digunakan untuk melakukan sebagian pemeriksaan, tetapi dibutuhkan pemeriksaan statis yang lebih baik.
- Sulit untuk menguji secara lokal, sehingga harus membuat repositori yang sama lalu berulang kali commit dan push sampai CI berfungsi.
- Workflow dijaga tetap kecil dan artefak didorong agar bisa digunakan kembali di workflow lain. Namun, token diperlukan saat mengunduh artefak.
-
Kesimpulan
- Dengan skrip CI yang baru, waktu merge berkurang drastis, tetapi proses konfigurasinya rumit dan debugging-nya sulit. Diperlukan inovasi.
1 komentar
Opini Hacker News
Ada pendapat bahwa GitLab lebih baik, tetapi GitLab juga punya masalah dengan cara yang berbeda
Menarik bahwa GitHub Actions dan DevOps mendapat kritik yang luas
Pernah menggunakan GitLab lalu beralih ke GitHub, tetapi merasa kecewa
Feedback loop 30-60 detik adalah yang terburuk
Tidak ingin CI memperbaiki kode secara otomatis
Kecewa karena perkembangan GitHub Actions tampaknya terhenti
GitHub Actions mendorong penyalahgunaan container sebagai skrip instalasi
Penting untuk memilih alat yang tepat
Karena masalah keamanan GitHub Action, dependensi harus dipin menggunakan hash
Ada banyak masalah pada GitHub Actions