0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng dẫn sử dụng `act` để chạy GitHub Actions Workflows trên máy Local

Đăng vào 3 tuần trước

• 4 phút đọc

1. Giới thiệu Tổng Quan

GitHub Actions đã trở thành một công cụ thiết yếu trong quy trình tự động hóa CI/CD của các lập trình viên hiện đại. Tuy nhiên, việc phát triển và kiểm thử một workflow GitHub Actions có thể tiêu tốn nhiều thời gian do yêu cầu phải thường xuyên commit và push các thay đổi lên repository để kiểm tra tính đúng đắn của chúng. Điều này không chỉ làm tăng thời gian phát triển mà còn tạo ra nhiều commit không cần thiết trong lịch sử phiên bản của repository. Để khắc phục vấn đề này, act là một công cụ mã nguồn mở giúp bạn mô phỏng các workflows của GitHub Actions ngay trên máy local. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách sử dụng act để tối ưu hóa quy trình kiểm thử workflows của bạn.

2. Giới thiệu về act

act được thiết kế để giúp lập trình viên thực hiện các GitHub Actions workflows trên môi trường local. Công cụ này mô phỏng các workflows bằng cách sử dụng Docker containers để thực hiện những bước đã được định nghĩa trong file .github/workflows. Việc sử dụng act giúp bạn kiểm thử nhanh chóng mà không cần thực hiện push hay pull request, góp phần nâng cao hiệu quả công việc.

act được viết bằng ngôn ngữ Go (Golang) nhằm tận dụng hiệu suất cao, khả năng xử lý song song tốt và dễ dàng biên dịch thành các binary độc lập trên nhiều nền tảng. Điều này giúp ích cho người dùng trong việc cài đặt và sử dụng act trên các hệ điều hành mà không cần cấu hình phức tạp.

3. Hướng dẫn Cài đặt act

Lưu ý: Trước khi cài đặt act, bạn cần đảm bảo Docker đã được cài trên máy của bạn.

Cách cài đặt act:

  • Linux/MacOS: Cài đặt thông qua Homebrew:

    Copy
    brew install act
  • Windows: Sử dụng lệnh của scoop:

    Copy
    scoop install act
  • Cài đặt từ mã nguồn: Tải mã nguồn từ trang GitHub và thực hiện cài đặt trực tiếp nếu cần.

Sau khi hoàn tất cài đặt, kiểm tra phiên bản act bằng lệnh sau:

bash Copy
act --version

4. Hướng dẫn sử dụng act

Liệt kê tất cả các job

Nhập lệnh sau để liệt kê các job có trong workflow:

bash Copy
act -l

Lệnh này sẽ hiển thị toàn bộ các job và các trigger tương ứng, giúp bạn theo dõi và quản lý các bước trong workflow một cách hiệu quả.

Chạy workflows theo sự kiện

Bạn có thể chạy các workflow dựa trên các sự kiện như push hoặc pull_request:

bash Copy
act push

Lệnh này sẽ kích hoạt các workflow được cấu hình để chạy khi có sự kiện push. Bạn có thể thay đổi push thành các sự kiện khác để kiểm thử.

Để liệt kê tất cả các workflow cho một sự kiện nhất định, sử dụng:

bash Copy
act -l pull_request

Chạy workflow cụ thể

Theo mặc định, act sẽ thực hiện tất cả các workflow trong thư mục .github/workflows. Để chỉ định chạy một workflow cụ thể, sử dụng:

bash Copy
act -W '.github/workflows/example.yml'

Chạy job cụ thể

Nếu bạn chỉ muốn chạy một job cụ thể thay vì toàn bộ workflow, thêm tên job vào lệnh:

bash Copy
act -j <job_name>

Điều này giúp tối ưu hóa quy trình kiểm thử khi bạn cần kiểm tra từng phần riêng lẻ của workflow.

Pass Personal Access Tokens

Để truy cập vào các tài nguyên yêu cầu quyền truy cập, bạn có thể cung cấp Personal Access Token:

bash Copy
act -s GITHUB_TOKEN=<your_token>

Nếu bạn đã cài đặt GitHub CLI, có thể tự động chuyển token cho act bằng:

bash Copy
act -s GITHUB_TOKEN="$(gh auth token)"

Pass Secrets

Giống như trên GitHub, bạn có thể cung cấp các secrets để kiểm thử workflows yêu cầu biến môi trường nhạy cảm:

bash Copy
act -s MY_SECRET=value

Bạn có thể thêm nhiều secrets khác nhau bằng cách lặp lại tham số -s.

Sử dụng file .actrc

Để thuận tiện hơn, bạn có thể lưu cấu hình mặc định trong file .actrc:

bash Copy
-P ubuntu-latest=nektos/act-environments-ubuntu:18.04
-s GITHUB_TOKEN=<your_token>

File .actrc cho phép bạn định nghĩa các tùy chọn mặc định mà act sẽ sử dụng mỗi khi gọi CLI, giúp giảm thiểu khối lượng lệnh cần nhập.

5. Ưu điểm và Nhược điểm của act

Ưu điểm:

  • Tiết kiệm thời gian: Không cần đẩy mã nguồn lên GitHub mỗi khi muốn kiểm tra cấu hình workflow.
  • Dễ dàng debug: Cho phép kiểm tra và sửa lỗi nhanh chóng ngay trong môi trường local.
  • Dễ tiếp cận: Rất dễ sử dụng cho cả những người mới bắt đầu với GitHub Actions.

Nhược điểm:

  • Giới hạn hỗ trợ: Một số tính năng nâng cao có thể chưa được hỗ trợ đầy đủ trong act.
  • Yêu cầu có Docker: act chạy trên Docker containers, vì vậy cần cài đặt Docker trước khi sử dụng.
  • Tốn tài nguyên: Chạy các workflow phức tạp trên local có thể tiêu tốn nhiều tài nguyên hệ thống.

6. Kết luận

act là một công cụ tiện lợi giúp kiểm thử GitHub Actions workflows ngay trên môi trường local. Với khả năng mô phỏng các thao tác của GitHub Actions, act giúp tiết kiệm thời gian và giảm thiểu lỗi khi làm việc với CI/CD. Nếu bạn thường xuyên hiệu chỉnh workflows, act sẽ là công cụ hữu ích để tối ưu hóa quy trình phát triển. Tuy nhiên, nó không hoàn toàn thay thế được GitHub Actions và có thể không phù hợp cho những workflow phức tạp, vì vậy hãy cân nhắc trong quá trình sử dụng.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào