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:
brew install act
-
Windows: Sử dụng lệnh của
scoop
: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
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
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
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
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
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
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
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
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
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
-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