Thủ thuật
Mẹo tối ưu cache khi dùng uvx trong GitHub Actions
(giờ Việt Nam)
Tóm tắt AI
Hướng dẫn cách dùng biến môi trường UV_EXCLUDE_NEWER để cache các công cụ Python trong GitHub Actions, giúp tăng tốc workflow và giảm tải cho PyPI.
Bản dịch AI
TIL (Hôm nay tôi học được) cách sử dụng uvx trong GitHub Actions một cách tối ưu cho bộ nhớ đệm — Tôi thường muốn chạy nhanh một công cụ Python bên trong GitHub Actions bằng lệnh `uvx name-of-tool` - nhưng tôi không muốn việc này dẫn đến yêu cầu mạng gửi tới PyPI mỗi khi workflow chạy. Tôi muốn công cụ đó được tải về trong lần đầu tiên và sau đó được tái sử dụng từ bộ nhớ đệm (cache) của GitHub Actions cho các lần chạy tiếp theo.
Cuối cùng tôi cũng tìm ra một công thức tối ưu bộ nhớ đệm để sử dụng `uvx tool-name` trong các workflow của GitHub Actions mà tôi ưng ý.
Bí quyết nằm ở việc thiết lập biến môi trường `UV_EXCLUDE_NEWER: "2026-07-12"` ngay từ đầu workflow và sử dụng nó như một phần của khóa bộ nhớ đệm (cache key) trong GitHub Actions. Điều này có nghĩa là mọi lệnh `uvx tool-name` sẽ phân giải về phiên bản mới nhất tính đến ngày đó, và bạn có thể xóa bộ nhớ đệm để nâng cấp công cụ bằng cách cập nhật ngày đó lên một thời điểm trong tương lai.
Mục tiêu của tôi ở đây là sử dụng các công cụ Python trong GitHub Actions mà không cần mỗi lần chạy workflow đều phải kết nối tới PyPI để tải xuống một bản sao mới của công cụ đó cùng các phụ thuộc đi kèm.

Bài viết được AI dịch và tổng hợp tự động từ Simon Willison. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.