Alat sumber terbuka Act, yang menjanjikan pembangun boleh menjalankan aliran kerja GitHub Actions secara tempatan, telah mencetuskan perbincangan yang hebat di kalangan pembangun yang mengalami keputusan bercampur-campur semasa cuba menggunakannya. Walaupun Act bertujuan untuk memberikan kitaran maklum balas yang lebih pantas dan menggantikan pelaksana tugas tradisional seperti Make, ramai pengguna melaporkan cabaran yang ketara apabila menggunakannya dalam senario dunia sebenar.
Act direka dengan dua matlamat utama: menyediakan maklum balas pantas untuk perubahan aliran kerja GitHub Actions tanpa memerlukan komit dan push, dan berfungsi sebagai pelaksana tugas tempatan. Alat ini berfungsi dengan membaca fail aliran kerja dari direktori .github/workflows/
, menggunakan Docker untuk menarik atau membina imej yang diperlukan, dan kemudian melaksanakan tindakan dalam kontena yang dikonfigurasi untuk sepadan dengan persekitaran GitHub.
Isu Keserasian Platform
Pengguna yang cuba menjalankan Act pada seni bina perkakasan yang berbeza menghadapi cabaran yang ketara. Seorang pembangun melaporkan kegagalan berterusan ketika cuba menyahpepijat isu CI pada Mac siri-M, menyoroti ketidaksepadanan platform yang wujud antara persekitaran tempatan dan pelaksana CI. Walaupun menggunakan imej khusus seperti dari catthehacker – yang dilaporkan menggunakan lebih 60GB tanpa pemampatan – gagal menyelesaikan masalah keserasian.
Baru minggu ini saya cuba memberinya peluang lagi untuk menyahpepijat beberapa kegagalan CI yang aneh untuk ujian ruby. Saya menggunakan Mac siri-M jadi terdapat ketidakpadanan platform yang sedia ada... Saya tidak pernah berjaya menjalankannya melepasi peringkat dry-run.
Isu keserasian platform melangkaui hanya Apple Silicon, dengan satu lagi batasan penting iaitu kekurangan sokongan Act untuk Podman, enjin kontena alternatif. Pengguna melaporkan bahawa percubaan untuk membincangkan keserasian Podman cepat ditolak, yang dianggap luar biasa oleh sesetengah pihak untuk projek sumber terbuka.
Ciri-ciri Utama Act:
- Menjalankan aliran kerja GitHub Actions secara tempatan
- Menggunakan Docker untuk mensimulasikan persekitaran pelaksanaan GitHub
- Mengkonfigurasi pembolehubah persekitaran dan sistem fail untuk sepadan dengan GitHub
- Memerlukan alat Go 1.20+ untuk pembinaan dari sumber
Isu Umum yang Dilaporkan:
- Masalah keserasian platform (terutamanya pada Mac siri-M)
- Tiada sokongan Podman
- Imej kontainer yang besar (sehingga 60GB tidak dimampatkan)
- Kesukaran dengan pembolehubah persekitaran dan rahsia
- Cabaran dengan pengesahan identiti beban kerja
- Memerlukan pengubahsuaian aliran kerja untuk pelaksanaan tempatan
Kerumitan Konfigurasi
Walaupun alat itu berjaya dijalankan, pembangun menghadapi cabaran dengan konfigurasi persekitaran. Banyak aliran kerja CI bergantung pada pemboleh ubah persekitaran dan rahsia yang mesti dikonfigurasi semula secara tempatan. Walaupun Act menawarkan penyelesaian untuk memuatkan rahsia dari fail, melaksanakan federasi identiti beban kerja dan mekanisme pengesahan lanjutan lain secara tempatan menimbulkan kerumitan tambahan.
Aliran kerja yang menggunakan token OpenID Connect (OIDC) GitHub untuk mengakses sumber awan seperti AWS memerlukan logik bersyarat khas untuk berfungsi dengan baik dalam kedua-dua persekitaran GitHub dan tempatan. Ini memerlukan pengubahsuaian pada fail aliran kerja khusus untuk memudahkan pengujian tempatan.
Realiti Simulasi CI Tempatan
Persetujuan di kalangan ramai pembangun adalah bahawa percubaan untuk menjalankan aliran kerja CI yang kompleks secara tempatan mungkin bermasalah secara asasnya. Seorang pengulas menggambarkannya sebagai usaha yang agak tidak berharapan kecuali untuk aliran kerja yang sepenuhnya dikontainerkan. Walaupun begitu, penghasilan semula pemboleh ubah persekitaran khusus CI dan perkongsian artifak antara tugas tetap mencabar.
Sesetengah pembangun mencadangkan bahawa daripada memberi tumpuan kepada replikasi tempatan yang sempurna, pendekatan yang lebih baik mungkin adalah alat yang memudahkan pembinaan jarak jauh tanpa memerlukan git push, digabungkan dengan akses SSH untuk memeriksa persekitaran pembinaan sebenar. Pendekatan ini mengakui perbezaan yang wujud antara persekitaran tempatan dan CI sambil masih menyediakan keupayaan penyahpepijatan yang lebih baik.
Walaupun menghadapi cabaran ini, sesetengah pengguna melaporkan bahawa Act telah membantu mereka memajukan aliran kerja pembangunan mereka, mencadangkan bahawa walaupun dengan batasannya, alat ini memberikan nilai untuk kes penggunaan dan persekitaran tertentu.
Perbincangan mengenai Act menyoroti isu yang lebih luas dalam ekosistem GitHub Actions: walaupun GitHub telah membina platform CI/CD yang komprehensif, alat penyahpepijatan sebahagian besarnya telah diserahkan kepada komuniti untuk dibangunkan. Jurang antara keupayaan platform dan alat penyahpepijatan ini mewakili peluang sama ada untuk GitHub atau pembangun pihak ketiga untuk mencipta penyelesaian yang lebih mantap.
Rujukan: act