Alat open-source bernama Act, yang menjanjikan kemampuan bagi pengembang untuk menjalankan alur kerja GitHub Actions secara lokal, telah memicu diskusi yang cukup luas di kalangan pengembang yang mengalami hasil beragam ketika mencoba menggunakannya. Meskipun Act bertujuan untuk memberikan siklus umpan balik yang lebih cepat dan menggantikan task runner tradisional seperti Make, banyak pengguna melaporkan tantangan signifikan ketika mengimplementasikannya dalam skenario dunia nyata.
Act dirancang dengan dua tujuan utama: memberikan umpan balik cepat untuk perubahan alur kerja GitHub Actions tanpa memerlukan commit dan push, serta berfungsi sebagai task runner lokal. Alat ini bekerja dengan membaca file alur kerja dari direktori .github/workflows/
, menggunakan Docker untuk menarik atau membangun image yang diperlukan, dan kemudian menjalankan aksi dalam kontainer yang dikonfigurasi agar sesuai dengan lingkungan GitHub.
Masalah Kompatibilitas Platform
Pengguna yang mencoba menjalankan Act pada arsitektur perangkat keras yang berbeda menghadapi rintangan yang signifikan. Seorang pengembang melaporkan kegagalan yang terus-menerus saat mencoba men-debug masalah CI pada Mac seri M, menyoroti ketidakcocokan platform yang melekat antara lingkungan lokal dan runner CI. Bahkan menggunakan image khusus seperti dari catthehacker – yang dilaporkan mengkonsumsi lebih dari 60GB dalam bentuk tidak terkompresi – gagal menyelesaikan masalah kompatibilitas.
Baru minggu ini saya mencoba memberinya kesempatan lagi untuk men-debug beberapa kegagalan CI yang aneh untuk tes ruby. Saya menggunakan Mac seri M sehingga ada ketidakcocokan platform yang melekat... Saya tidak pernah bisa menjalankannya melewati tahap dry-run.
Masalah kompatibilitas platform juga meluas di luar Apple Silicon, dengan keterbatasan signifikan lainnya yaitu kurangnya dukungan Act untuk Podman, sebuah mesin kontainer alternatif. Pengguna melaporkan bahwa upaya untuk mendiskusikan kompatibilitas Podman dengan cepat ditolak, yang dianggap tidak biasa untuk proyek open-source.
Fitur Utama Act:
- Menjalankan alur kerja GitHub Actions secara lokal
- Menggunakan Docker untuk mensimulasikan lingkungan eksekusi GitHub
- Mengkonfigurasi variabel lingkungan dan sistem file agar sesuai dengan GitHub
- Memerlukan Go tools 1.20+ untuk membangun dari sumber
Masalah Umum yang Dilaporkan:
- Masalah kompatibilitas platform (terutama pada Mac seri M)
- Tidak ada dukungan Podman
- Image container berukuran besar (hingga 60GB tidak terkompresi)
- Kesulitan dengan variabel lingkungan dan rahasia
- Tantangan dengan federasi identitas beban kerja
- Memerlukan modifikasi alur kerja untuk eksekusi lokal
Kompleksitas Konfigurasi
Bahkan ketika alat tersebut berhasil dijalankan, pengembang menghadapi tantangan dengan konfigurasi lingkungan. Banyak alur kerja CI bergantung pada variabel lingkungan dan rahasia yang harus dikonfigurasi ulang secara lokal. Meskipun Act menawarkan solusi untuk memuat rahasia dari file, mengimplementasikan federasi identitas beban kerja dan mekanisme autentikasi lanjutan lainnya secara lokal menimbulkan kompleksitas tambahan.
Alur kerja yang menggunakan token OpenID Connect (OIDC) GitHub untuk mengakses sumber daya cloud seperti AWS memerlukan logika kondisional khusus agar berfungsi dengan baik di lingkungan GitHub maupun lokal. Hal ini mengharuskan modifikasi pada file alur kerja khusus untuk mengakomodasi pengujian lokal.
Realitas Simulasi CI Lokal
Konsensus di antara banyak pengembang adalah bahwa upaya untuk menjalankan alur kerja CI yang kompleks secara lokal mungkin secara fundamental bermasalah. Seorang komentator menggambarkannya sebagai usaha yang cukup sia-sia kecuali untuk alur kerja yang sepenuhnya terkontainerisasi. Bahkan dalam kasus tersebut, mereproduksi variabel lingkungan khusus CI dan berbagi artefak antar tugas tetap menjadi tantangan.
Beberapa pengembang menyarankan bahwa daripada fokus pada replikasi lokal yang sempurna, pendekatan yang lebih baik mungkin adalah alat yang memfasilitasi build jarak jauh tanpa memerlukan git push, dikombinasikan dengan akses SSH untuk memeriksa lingkungan build yang sebenarnya. Pendekatan ini mengakui perbedaan inheren antara lingkungan lokal dan CI sambil tetap memberikan kemampuan debugging yang lebih baik.
Terlepas dari tantangan-tantangan ini, beberapa pengguna melaporkan bahwa Act telah membantu mereka memajukan alur kerja pengembangan mereka, menunjukkan bahwa meskipun dengan keterbatasannya, alat ini memberikan nilai untuk kasus penggunaan dan lingkungan tertentu.
Diskusi seputar Act menyoroti masalah yang lebih luas dalam ekosistem GitHub Actions: sementara GitHub telah membangun platform CI/CD yang komprehensif, alat debugging sebagian besar diserahkan kepada komunitas untuk dikembangkan. Kesenjangan antara kemampuan platform dan alat debugging ini merepresentasikan peluang bagi GitHub atau pengembang pihak ketiga untuk menciptakan solusi yang lebih kuat.
Referensi: act