Các nhà phát triển gặp khó khăn với công cụ kiểm thử cục bộ GitHub Actions dù được hứa hẹn phản hồi nhanh hơn

BigGo Editorial Team
Các nhà phát triển gặp khó khăn với công cụ kiểm thử cục bộ GitHub Actions dù được hứa hẹn phản hồi nhanh hơn

Công cụ mã nguồn mở Act, vốn hứa hẹn cho phép các nhà phát triển chạy quy trình làm việc GitHub Actions cục bộ, đã gây ra nhiều tranh luận giữa các nhà phát triển khi họ gặp phải kết quả không đồng nhất khi cố gắng sử dụng nó. Mặc dù Act nhằm mục đích cung cấp chu kỳ phản hồi nhanh hơn và thay thế các công cụ chạy tác vụ truyền thống như Make, nhiều người dùng báo cáo những thách thức đáng kể khi triển khai nó trong các tình huống thực tế.

Act được thiết kế với hai mục tiêu chính: cung cấp phản hồi nhanh cho các thay đổi quy trình làm việc GitHub Actions mà không cần commit và push, đồng thời đóng vai trò như một công cụ chạy tác vụ cục bộ. Công cụ này hoạt động bằng cách đọc các tệp quy trình làm việc từ thư mục .github/workflows/, sử dụng Docker để kéo hoặc xây dựng các hình ảnh cần thiết, sau đó thực thi các hành động trong các container được cấu hình để phù hợp với môi trường của GitHub.

Vấn đề tương thích nền tảng

Người dùng cố gắng chạy Act trên các kiến trúc phần cứng khác nhau phải đối mặt với những trở ngại đáng kể. Một nhà phát triển báo cáo những thất bại liên tục khi cố gắng gỡ lỗi các vấn đề CI trên máy Mac dòng M, nhấn mạnh sự không tương thích vốn có giữa môi trường cục bộ và các runner CI. Ngay cả khi sử dụng các hình ảnh chuyên biệt như từ catthehacker - được cho là tiêu thụ hơn 60GB khi giải nén - cũng không giải quyết được các vấn đề về tính tương thích.

Chỉ trong tuần này tôi đã thử cho nó một cơ hội khác để gỡ lỗi một số lỗi CI kỳ lạ cho các bài kiểm tra ruby. Tôi đang sử dụng máy Mac dòng M nên có sự không tương thích về nền tảng... Tôi không bao giờ có thể chạy nó vượt qua giai đoạn chạy thử.

Các vấn đề về tính tương thích nền tảng không chỉ giới hạn ở Apple Silicon, một hạn chế đáng kể khác là Act thiếu hỗ trợ cho Podman, một công cụ container thay thế. Người dùng báo cáo rằng các nỗ lực thảo luận về khả năng tương thích Podman nhanh chóng bị bác bỏ, điều mà một số người thấy bất thường đối với một dự án mã nguồn mở.

Các tính năng chính của Act:

  • Chạy quy trình công việc GitHub Actions trên máy tính cá nhân
  • Sử dụng Docker để mô phỏng môi trường thực thi của GitHub
  • Cấu hình biến môi trường và hệ thống tệp để phù hợp với GitHub
  • Yêu cầu công cụ Go 1.20+ để xây dựng từ mã nguồn

Các vấn đề thường gặp:

  • Vấn đề tương thích nền tảng (đặc biệt trên máy Mac dòng M)
  • Không hỗ trợ Podman
  • Hình ảnh container lớn (lên đến 60GB khi giải nén)
  • Khó khăn với biến môi trường và bí mật
  • Thách thức với xác thực workload identity federation
  • Yêu cầu sửa đổi quy trình công việc để thực thi cục bộ

Độ phức tạp trong cấu hình

Ngay cả khi công cụ chạy thành công, các nhà phát triển vẫn phải đối mặt với những thách thức về cấu hình môi trường. Nhiều quy trình CI phụ thuộc vào các biến môi trường cụ thể và bí mật phải được cấu hình lại cục bộ. Mặc dù Act có cung cấp giải pháp để tải bí mật từ các tệp, việc triển khai xác thực danh tính workload và các cơ chế xác thực nâng cao khác ở cục bộ tạo ra độ phức tạp bổ sung.

Các quy trình làm việc sử dụng token OpenID Connect (OIDC) của GitHub để truy cập các tài nguyên đám mây như AWS yêu cầu logic điều kiện đặc biệt để hoạt động đúng cách trong cả môi trường GitHub và cục bộ. Điều này đòi hỏi phải sửa đổi các tệp quy trình làm việc cụ thể để thích ứng với kiểm thử cục bộ.

Thực tế của mô phỏng CI cục bộ

Sự đồng thuận giữa nhiều nhà phát triển là việc cố gắng chạy các quy trình CI phức tạp cục bộ có thể về cơ bản là có vấn đề. Một người bình luận mô tả đó là một nỗ lực khá vô vọng ngoại trừ các quy trình làm việc được đóng gói hoàn toàn. Ngay cả khi đó, việc tái tạo các biến môi trường cụ thể cho CI và chia sẻ tạo phẩm giữa các tác vụ vẫn còn nhiều thách thức.

Một số nhà phát triển gợi ý rằng thay vì tập trung vào việc sao chép hoàn hảo ở cục bộ, một cách tiếp cận tốt hơn có thể là các công cụ tạo điều kiện cho việc xây dựng từ xa mà không cần đẩy git, kết hợp với quyền truy cập SSH để kiểm tra môi trường xây dựng thực tế. Cách tiếp cận này thừa nhận sự khác biệt vốn có giữa môi trường cục bộ và CI trong khi vẫn cung cấp khả năng gỡ lỗi được cải thiện.

Mặc dù có những thách thức này, một số người dùng báo cáo rằng Act đã giúp họ cải thiện quy trình phát triển của mình, cho thấy rằng ngay cả với những hạn chế của nó, công cụ này vẫn mang lại giá trị cho một số trường hợp sử dụng và môi trường nhất định.

Cuộc thảo luận xung quanh Act làm nổi bật một vấn đề rộng lớn hơn trong hệ sinh thái GitHub Actions: mặc dù GitHub đã xây dựng một nền tảng CI/CD toàn diện, các công cụ gỡ lỗi phần lớn đã được để lại cho cộng đồng phát triển. Khoảng cách giữa khả năng của nền tảng và các công cụ gỡ lỗi này đại diện cho một cơ hội cho cả GitHub hoặc các nhà phát triển bên thứ ba để tạo ra các giải pháp mạnh mẽ hơn.

Tham khảo: act