Tăng tốc GitHub Actions bằng local caching
(github.com/corca-ai)Có lẽ nhiều người đang dùng GitHub Action trên GitHub để chạy pipeline CI/CD. Để build nhanh hơn, người ta thường dùng cache rất nhiều, nhưng lúc đầu thì không có vấn đề lớn; khi dịch vụ mở rộng hoặc số lượng branch tăng lên, cache bắt đầu không còn hoạt động và mỗi lần lại phải build lại nên tốc độ dần chậm đi. Lý do là cơ chế cache mặc định của GitHub Actions có giới hạn dung lượng 10GB.
Để giải quyết vấn đề này, chúng tôi đã phát triển một package cho phép cache cục bộ trên 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-
Chỉ cần dùng self-hosted runner thay vì github-hosted runner, và ở phần trước đây dùng cache hiện có, chỉ cần thay phần uses thành corca-ai/local-cache là có thể dùng ngay.
Giới hạn dung lượng của cache không còn nữa, và khác với cơ chế cache cũ phải tải file cache qua mạng, local caching được nạp trực tiếp từ đĩa nên tốc độ cache được cải thiện vượt bậc. Chúng tôi đã cảm nhận được mức tăng tốc hơn 5 lần.
1 bình luận
Có một thứ tương tự là maxnowack/local-cache.