เพิ่มความเร็วของ GitHub Action ด้วย local caching
(github.com/corca-ai)หลายคนน่าจะใช้ git action บน github เพื่อรัน CI/CD pipeline กันอยู่แล้ว โดยเพื่อให้ build ได้เร็ว มักจะใช้ cache กันมาก แต่ในช่วงแรกอาจยังไม่มีปัญหาใหญ่ อย่างไรก็ตาม เมื่อ service ใหญ่ขึ้นหรือมี branch มากขึ้น cache จะเริ่มใช้ไม่ได้และต้อง build ใหม่ทุกครั้ง ทำให้ความเร็วช้าลง สาเหตุคือระบบ caching พื้นฐานของ GitHub Action มีข้อจำกัดขนาด 10GB
เพื่อแก้ปัญหานี้ เราได้พัฒนาแพ็กเกจที่สามารถ cache ลงใน local บน self-hosted runner ได้
- name: Cache node dependencies
id: node-cache
uses: corca-ai/local-cache@v2
with:
path: node_modules
key: node-${{ hashFiles(‘yarn.lock’) }}
clean-key: node-
แทนที่จะใช้ github-hosted runner ให้ใช้ self-hosted runner และเปลี่ยนเฉพาะส่วน uses จาก cache เดิมเป็น corca-ai/local-cache ก็สามารถใช้งานได้ทันที
ข้อจำกัดด้านขนาดของ cache จะหายไป และเมื่อเทียบกับการ caching แบบเดิมที่ต้องโหลดไฟล์ cache ผ่านเครือข่าย local caching สามารถโหลดจาก disk ได้โดยตรง จึงทำให้ความเร็วในการ cache ดีขึ้นอย่างมาก โดยเราได้สัมผัสถึงการเพิ่มความเร็วมากกว่า 5 เท่า
1 ความคิดเห็น
มี maxnowack/local-cache ที่คล้ายกันอยู่ครับ