Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Cách Chạy GitHub Actions Của Bạn Một Cách Cục Bộ Với Act

中村 拓也

中村 拓也

Updated on tháng 4 16, 2025

Các hành động trên GitHub đã cách mạng hóa cách mà các nhà phát triển tự động hóa quy trình làm việc trong các kho chứa của họ. Từ việc tích hợp liên tục và triển khai liên tục (CI/CD) đến việc tự động gán nhãn vấn đề và tạo ghi chú phát hành, các hành động cung cấp một cách mạnh mẽ, tích hợp để quản lý vòng đời phát triển phần mềm ngay bên trong GitHub.

Tuy nhiên, việc phát triển và thử nghiệm các quy trình làm việc này đôi khi có thể cảm thấy c cumbersome. Vòng đời truyền thống bao gồm:

  1. Thay đổi các tệp quy trình làm việc của bạn (thường nằm trong .github/workflows/).
  2. Cam kết các thay đổi này.
  3. Đẩy chúng lên kho chứa GitHub của bạn.
  4. Chờ đợi các runner của GitHub lấy công việc và thực thi nó.
  5. Phân tích các nhật ký trên trang web GitHub để xem liệu các thay đổi của bạn có hoạt động hay không, hoặc nếu chúng gây ra lỗi.

Quá trình này, đặc biệt là phần chờ đợi và việc chuyển đổi giữa trình soạn thảo địa phương của bạn và giao diện người dùng của GitHub, có thể làm chậm đáng kể sự phát triển, đặc biệt là khi lặp lại trên các quy trình làm việc phức tạp hoặc gỡ lỗi các vấn đề khó khăn. Nếu bạn có thể thử nghiệm các hành động của mình trước khi đẩy chúng lên, thì sao?

Đúng ở chỗ này, act xuất hiện. Như khẩu hiệu của nó gợi ý, "Hãy nghĩ toàn cầu, act địa phương". act là một công cụ dòng lệnh mã nguồn mở được thiết kế để chạy các quy trình làm việc của GitHub Actions ở chế độ địa phương bằng cách sử dụng các container Docker. Nó mô phỏng môi trường mà GitHub Actions cung cấp, giúp bạn thử nghiệm và lặp lại trên các quy trình làm việc của mình một cách nhanh chóng mà không cần cam kết và đẩy mỗi thay đổi nhỏ.

💡
Bạn có muốn một công cụ Kiểm tra API tuyệt vời được tạo ra tài liệu API đẹp mắt?

Bạn có muốn một nền tảng tích hợp, Tất cả trong một cho Nhóm Phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng tất cả các yêu cầu của bạn, và thay thế Postman với giá cả phải chăng hơn nhiều!
button

Tại sao phải chạy GitHub Actions ở chế độ cục bộ với act?

Các lợi ích của việc tích hợp act vào quy trình phát triển của bạn là rất lớn:

  1. Phản hồi nhanh: Đây là lợi thế chính. Thay vì vòng hợp nhất-đẩy-chờ-gỡ lỗi, bạn có thể chạy quy trình làm việc ngay sau khi thực hiện thay đổi tại địa phương. Nhận phản hồi trong vài giây hoặc vài phút, không phải trong vài phút hoặc hàng chục phút. Điều này làm tăng tốc độ phát triển và quy trình gỡ lỗi cho các tệp .github/workflows/ của bạn một cách đáng kể.
  2. Trình chạy tác vụ cục bộ: Nhiều dự án sử dụng các công cụ như make, npm scripts, hoặc các script shell tùy chỉnh để định nghĩa các tác vụ phát triển chung (biên dịch, thử nghiệm, kiểm tra mã, v.v.). act cho phép bạn hợp nhất các tác vụ này. Bạn có thể định nghĩa quy trình xây dựng, kiểm tra và các quy trình khác dưới dạng công việc của GitHub Actions, và sau đó sử dụng act để chạy các công việc mà bạn đã định nghĩa trước đó tại địa phương cho các mục đích phát triển. Điều này giảm thiểu sự trùng lặp và đảm bảo tính nhất quán giữa môi trường phát triển địa phương của bạn và quy trình CI/CD của bạn. Bạn định nghĩa các tác vụ một lần trong các tệp quy trình làm việc của bạn, và chúng sẽ chạy giống hệt (hoặc rất giống) ở mọi nơi.
  3. Phát triển ngoại tuyến: Kiểm tra cú pháp và logic của quy trình làm việc cơ bản ngay cả khi không có kết nối internet liên tục (dù việc tải xuống hình ảnh ban đầu và một số hành động có thể cần kết nối).
  4. Tiết kiệm chi phí: Mặc dù GitHub cung cấp một mức miễn phí hào phóng cho các kho công khai và giá cả hợp lý cho các kho riêng tư, việc chạy các quy trình làm việc phức tạp hoặc dài trong thời gian phát triển có thể tiêu tốn rất nhiều phút chạy. Thử nghiệm tại địa phương giúp tránh việc sử dụng này.
  5. Sức mạnh gỡ lỗi: Gỡ lỗi các hành động thất bại trên GitHub thường liên quan đến việc thêm nhật ký bổ sung, đẩy và chờ đợi. Với act, bạn có thể kiểm tra môi trường địa phương, gắn các volume, và có khả năng sử dụng các kỹ thuật gỡ lỗi nâng cao hơn trong các container Docker mà nó khởi động.

act hoạt động như thế nào?

Hiểu cơ chế phía sau act giúp sử dụng nó hiệu quả và khắc phục các vấn đề tiềm năng. Dưới đây là một phân tích về cách thức hoạt động của nó:

  1. Phân tích quy trình làm việc: Khi bạn thực thi lệnh act trong thư mục gốc của kho chứa của bạn, nó quét thư mục .github/workflows/ để tìm các tệp YAML quy trình làm việc của bạn.
  2. Mô phỏng kích hoạt sự kiện: Theo mặc định, act mô phỏng một sự kiện push, nhưng bạn có thể chỉ định các sự kiện khác như pull_request, workflow_dispatch, v.v. Nó xác định các quy trình làm việc và công việc nào nên chạy dựa trên sự kiện được chỉ định và các kích hoạt on: được định nghĩa trong các tệp quy trình làm việc của bạn.
  3. Phân tích phụ thuộc: act phân tích các phụ thuộc giữa các công việc trong một quy trình làm việc (sử dụng từ khóa needs:) để xác định đúng thứ tự thực hiện.
  4. Quản lý hình ảnh Docker: Đối với mỗi công việc, act xác định môi trường trình chạy được chỉ định (ví dụ: runs-on: ubuntu-latest). Sau đó, nó ánh xạ điều này tới một hình ảnh Docker cụ thể. act sử dụng API Docker để:
  • Kéo hình ảnh: Tải xuống các hình ảnh trình chạy cần thiết và bất kỳ hình ảnh Docker nào được sử dụng bởi các hành động container (uses: docker://...). Theo mặc định, nó kéo hình ảnh trong mỗi lần chạy trừ khi được cấu hình khác.
  • Xây dựng hình ảnh (nếu cần): Nếu một hành động chỉ đến một Dockerfile tại địa phương (uses: ./path/to/action), act có thể xây dựng hình ảnh Docker tại địa phương.
  1. Thực thi container: act sử dụng API Docker để tạo và chạy các container cho mỗi bước trong một công việc. Nó cấu hình những container này để mô phỏng môi trường của GitHub Actions một cách chính xác nhất có thể:
  • Biến môi trường: Các biến môi trường tiêu chuẩn của GitHub Actions (như GITHUB_SHA, GITHUB_REF, GITHUB_REPOSITORY, CI, v.v.) được tiêm.
  • Hệ thống tệp: Mã nguồn của kho được gắn vào thư mục không gian làm việc của container (/github/workspace). Các tệp được tạo bởi các bước được lưu trong container cho các bước tiếp theo.
  • Mạng: Các container thường được chạy trên một mạng cầu Docker, cho phép giao tiếp nếu cần (mặc dù các chi tiết mạng có thể khác với môi trường GitHub).
  1. Luồng nhật ký: act phát luồng nhật ký từ các container đang chạy trực tiếp đến terminal của bạn, cung cấp phản hồi theo thời gian thực về tiến trình thực hiện và bất kỳ lỗi nào.

Về cơ bản, act tổ chức các container Docker tại địa phương để tái tạo quy trình thực thi và môi trường của các quy trình làm việc GitHub Actions của bạn.

Yêu cầu: Cài đặt Docker

Tùy thuộc chính để actDocker. act sử dụng engine Docker để tạo ra các môi trường cách ly cần thiết để chạy các bước quy trình làm việc của bạn. Trước khi cài đặt act, bạn phải có một cài đặt Docker hoạt động trên hệ thống của bạn.

  • Cài đặt Docker: Làm theo hướng dẫn chính thức cho hệ điều hành của bạn:
  • macOS: Docker Desktop cho Mac
  • Windows: Docker Desktop cho Windows (Cần WSL 2 hoặc Hyper-V)
  • Linux: Làm theo các hướng dẫn cụ thể cho bản phân phối của bạn (ví dụ: Ubuntu, Fedora, Debian, v.v.). Đảm bảo bạn thêm người dùng của bạn vào nhóm docker để chạy các lệnh Docker mà không cần sudo.
  • Kiểm tra Docker: Sau khi cài đặt, mở terminal của bạn và chạy docker run hello-world. Lệnh này tải xuống một hình ảnh thử nghiệm nhỏ và chạy nó trong một container. Nếu nó chạy thành công, cài đặt Docker của bạn đã sẵn sàng.

Cài đặt act

Sau khi Docker đang chạy, bạn có thể cài đặt act. Có một số cách để làm điều này, tùy thuộc vào hệ điều hành và sở thích của bạn.

1. Homebrew (macOS và Linux)

Nếu bạn sử dụng package manager Homebrew, việc cài đặt rất đơn giản:

brew install act

Điều này cài đặt phiên bản ổn định mới nhất. Nếu bạn muốn phiên bản phát triển mới nhất (có thể yêu cầu một trình biên dịch), bạn có thể sử dụng:

brew install act --HEAD

2. Mở rộng GitHub CLI (macOS, Windows, Linux)

Nếu bạn đã sử dụng GitHub CLI (gh), bạn có thể cài đặt act như một tiện ích mở rộng:

gh extension install nektos/gh-act

Sau khi cài đặt, bạn gọi act thông qua lệnh gh:

gh act          # Thay vì chỉ 'act'
gh act -l
gh act pull_request

3. Chocolatey (Windows)

Đối với người dùng của package manager Chocolatey trên Windows:

choco install act-cli

(Lưu ý: Một số nguồn có thể liệt kê act thay vì act-cli. Kiểm tra tên gói mới nhất trên kho cộng đồng Chocolatey nếu bạn gặp vấn đề.)

4. Scoop (Windows)

Đối với người dùng của package manager Scoop trên Windows:

scoop install act

5. WinGet (Windows)

Đối với người dùng của Windows Package Manager (winget):

winget install nektos.act

6. Trình cài đặt Script Linux

Có sẵn một script tiện lợi cho các bản phân phối Linux mà không dễ dàng tiếp cận qua các package manager:

curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

(Lưu ý: Luôn thận trọng khi gửi các script trực tiếp vào sudo. Xem qua nội dung của script trước nếu bạn có lo ngại về bảo mật.)

7. Các phương pháp khác (Arch, COPR, MacPorts, Nix)

Các hướng dẫn cài đặt cho các package manager khác như pacman (Arch), COPR (Fedora), MacPorts và Nix có sẵn trong tài liệu chính thức của act:

Xác minh:

Sau khi cài đặt, mở một cửa sổ terminal mới và chạy:

act --version
# hoặc nếu sử dụng tiện ích mở rộng gh:
gh act --version

Điều này sẽ in ra phiên bản đã cài đặt của act, xác nhận rằng việc cài đặt thành công.

Cấu hình ban đầu: Hình ảnh trình chạy

Lần đầu tiên bạn chạy act trong một thư mục dự án, nó có thể yêu cầu bạn chọn một kích thước hình ảnh trình chạy mặc định. GitHub Actions cung cấp các trình chạy với nhiều nguồn lực và phần mềm đã được cài đặt sẵn. act cố gắng mô phỏng điều này bằng cách sử dụng các hình ảnh Docker cơ bản khác nhau.

Bạn thường được trình bày với sự lựa chọn như này:

? Vui lòng chọn hình ảnh mặc định bạn muốn sử dụng với act:

  - Micro: Hình ảnh tối thiểu với hỗ trợ nodejs (~200MB) docker.io/node:16-buster-slim
  - Medium: Hình ảnh Act với các công cụ cơ bản (~500MB) ghcr.io/catthehacker/ubuntu:act-latest
  - Large: Hình ảnh trình chạy Github Actions (~17GB) ghcr.io/catthehacker/ubuntu:full-latest

Hình ảnh mặc định? [Medium]:
  • Micro: Dựa trên các hình ảnh Node.js slim chính thức (như node:16-buster-slim hoặc node:16-bullseye-slim). Rất nhỏ và nhanh để tải xuống, nhưng chỉ chứa Node.js và các thư viện hệ thống tối thiểu. Phù hợp nếu các hành động của bạn chỉ cần Node.js hoặc tự cài đặt tất cả các phụ thuộc của chúng.
  • Medium: Cung cấp bởi người dùng catthehacker (ví dụ: catthehacker/ubuntu:act-latest, catthehacker/ubuntu:act-22.04). Các hình ảnh này bao gồm nhiều công cụ thông thường được tìm thấy trên các trình chạy của GitHub nhưng vẫn tương đối nhẹ (khoảng 500MB). Đây thường là mặc định được khuyến nghị vì nó cân bằng giữa tính năng và kích thước.
  • Large: Cũng từ catthehacker (ví dụ: catthehacker/ubuntu:full-latest, catthehacker/ubuntu:full-22.04). Những hình ảnh này được tạo từ các bản sao hệ thống tệp của các trình chạy do GitHub lưu trữ và chứa gần như tất cả phần mềm đã cài đặt sẵn. Chúng cung cấp tính tương thích cao nhất nhưng rất lớn (thường >17GB), dẫn đến thời gian tải xuống ban đầu dài và việc sử dụng không gian đĩa đáng kể.

Khuyến nghị: Bắt đầu với hình ảnh Medium. Nó cung cấp một sự cân bằng tốt và hoạt động cho nhiều trường hợp sử dụng phổ biến. Nếu bạn gặp các vấn đề do phần mềm thiếu, bạn có thể cài đặt phần mềm đó trong các bước quy trình làm việc của bạn hoặc chuyển sang sử dụng hình ảnh lớn cho trình chạy cụ thể đó (thông tin này sẽ được nêu sau).

act lưu lựa chọn của bạn trong một tệp cấu hình (~/.actrc). Bạn có thể thay đổi mặc định sau đó bằng cách chỉnh sửa tệp này hoặc chạy lại act trong một thư mục mà nó cần cấu hình.

Sử dụng cơ bản của act: Chạy các quy trình của bạn

Khi đã cài đặt và cấu hình, việc sử dụng act tương đối đơn giản. Điều hướng đến thư mục gốc của dự án của bạn (thư mục chứa thư mục .github) trong terminal của bạn.

1. Chạy Sự kiện Mặc định (push)

Lệnh đơn giản nhất chạy các quy trình làm việc được kích hoạt bởi sự kiện mặc định push:

act
# hoặc
gh act

act sẽ phân tích các quy trình làm việc của bạn, xác định các công việc được kích hoạt on: push, kéo các hình ảnh Docker cần thiết (nếu chưa được lưu vào cache) và thực hiện các công việc đó.

2. Danh sách Các quy trình và Công việc có sẵn

Để xem các quy trình làm việc và công việc nào mà act nhận diện và sẽ chạy cho sự kiện mặc định:

act -l
# hoặc 
gh act -l

Điều này sẽ xuất ra một danh sách như:

Stage  Job ID        Job name      Workflow name  Workflow file  Events
0      build         Build         CI Pipeline    ci.yaml        push
1      test          Test          CI Pipeline    ci.yaml        push
1      lint          Lint          Code Quality   codeql.yaml    push,pull_request

3. Chạy một Công việc Cụ thể

Nếu bạn chỉ muốn kiểm tra một công việc đơn lẻ từ một quy trình làm việc, sử dụng cờ -j theo sau là ID công việc (từ đầu ra act -l):

act -j build
# hoặc
gh act -j build

4. Kích hoạt một Sự kiện Cụ thể

Các quy trình làm việc thường được kích hoạt bởi các sự kiện khác ngoài push. Bạn có thể mô phỏng các sự kiện này bằng cách cung cấp tên sự kiện như một đối số cho act:

# Mô phỏng một sự kiện pull request
act pull_request

# Mô phỏng một sự kiện workflow_dispatch (kích hoạt thủ công)
act workflow_dispatch

# Mô phỏng một sự kiện lịch trình
act schedule

# Mô phỏng một sự kiện phát hành
act release -e event.json # Cung cấp chi tiết payload sự kiện nếu cần

act sẽ chỉ thực thi các quy trình làm việc và công việc được cấu hình để chạy on: sự kiện đã chỉ định.

5. Truyền Đầu vào cho workflow_dispatch

Các quy trình làm việc được kích hoạt bởi workflow_dispatch có thể chấp nhận đầu vào. Bạn có thể cung cấp chúng bằng cách sử dụng cờ --input hoặc -i:

# Giả sử quy trình làm việc của bạn có một đầu vào tên 'environment'
act workflow_dispatch --input environment=staging

6. Xử lý Bí mật

Các quy trình làm việc trong GitHub Actions thường phụ thuộc vào các bí mật (như khóa API hoặc token). act không tự động truy cập vào các bí mật GitHub của bạn. Bạn cần cung cấp chúng tại địa phương.

  • Bảng nhắc tương tác: Sử dụng cờ -s. act sẽ yêu cầu bạn nhập giá trị cho mỗi bí mật được định nghĩa trong quy trình làm việc của bạn:
act -s MY_SECRET_TOKEN -s ANOTHER_SECRET

Hoặc, chỉ act -s sẽ yêu cầu tất cả các bí mật.

  • Các Biến Môi trường: Các bí mật thường được truyền dưới dạng các biến môi trường có tiền tố SECRET_. Bạn có thể định nghĩa chúng trong shell của bạn trước khi chạy act:
export SECRET_MY_SECRET_TOKEN="your_value"
act
  • Tệp Bí mật: Tạo một tệp (ví dụ: .secrets) với các cặp KEY=VALUE:
MY_SECRET_TOKEN=your_value
ANOTHER_SECRET=another_value

Sau đó chạy act với cờ --secret-file:

act --secret-file .secrets

(Đảm bảo tệp này được thêm vào .gitignore để tránh cam kết các bí mật!)

7. Xử lý Các biến và Biến Môi trường

  • Các biến Quy trình: Bạn có thể cung cấp giá trị cho các biến được định nghĩa ở mức quy trình (vars: context, dù hỗ trợ toàn bộ context vars trong act có thể hạn chế) bằng cách sử dụng cờ --var hoặc một --var-file, tương tự như các bí mật.
  • Các Biến Môi trường: Để đặt các biến môi trường tùy chỉnh cho việc chạy quy trình, hãy sử dụng cờ --env hoặc một --env-file.
act --env NODE_ENV=development --env CUSTOM_FLAG=true
act --env-file .env_vars

Quản lý Các Môi trường và Hình ảnh Trình chạy

Khi các hình ảnh trình chạy mặc định (Micro, Medium, Large) đáp ứng nhiều kịch bản, bạn thường cần kiểm soát nhiều hơn.

1. Hạn chế của các hình ảnh mặc định

Hãy nhớ rằng các hình ảnh trình chạy act mặc định (đặc biệt là Micro và Medium) không hoàn toàn giống với các môi trường do GitHub cung cấp. Chúng có thể thiếu các công cụ, thư viện cụ thể, hoặc dịch vụ hệ thống (như systemd) mà quy trình làm việc của bạn mong đợi. Các hình ảnh lớn cung cấp độ chính xác cao hơn nhưng đi kèm với hạn chế kích thước đáng kể.

2. Chỉ định Các Hình ảnh Thay thế với -P

Nếu một công việc cần một môi trường hoặc bộ công cụ cụ thể không có trong hình ảnh mặc định, bạn có thể yêu cầu act sử dụng một hình ảnh Docker khác cho một nền tảng cụ thể bằng cách sử dụng cờ -P (nền tảng).

Định dạng là -P <nền tảng>=<docker-image>.

  • <nền tảng>: Nhãn được sử dụng trong chỉ thị runs-on: của quy trình làm việc của bạn (ví dụ: ubuntu-latest, ubuntu-22.04, ubuntu-20.04).
  • <docker-image>: Tên đầy đủ của hình ảnh Docker để sử dụng (ví dụ: node:18, python:3.10-slim, mcr.microsoft.com/devcontainers/base:ubuntu).

Ví dụ:

# Sử dụng hình ảnh lớn cụ thể cho các công việc chạy trên ubuntu-22.04
act -P ubuntu-22.04=ghcr.io/catthehacker/ubuntu:full-22.04

# Sử dụng một phiên bản Node.js cụ thể cho các công việc ubuntu-latest
act -P ubuntu-latest=node:18-bullseye

# Sử dụng một hình ảnh đầy đủ hơn từ nektos/act-environments (rất lớn!)
# CẢNH BÁO: nektos/act-environments-ubuntu:18.04 là >18GB
act -P ubuntu-18.04=nektos/act-environments-ubuntu:18.04

# Chỉ định nhiều nền tảng nếu quy trình làm việc của bạn sử dụng chúng
act -P ubuntu-20.04=node:16-buster -P ubuntu-22.04=node:18-bullseye

3. Sử dụng Hình ảnh Trình chạy Tại địa phương (--pull=false)

Theo mặc định, act cố gắng kéo phiên bản mới nhất của hình ảnh Docker được chỉ định mỗi khi nó chạy. Nếu bạn đã xây dựng một hình ảnh trình chạy tùy chỉnh tại địa phương hoặc muốn đảm bảo rằng bạn đang sử dụng chính xác phiên bản mà bạn đã lưu vào cache, bạn có thể tắt hành vi này:

act --pull=false
# hoặc có thể sử dụng chế độ ngoại tuyến
act --action-offline-mode

Điều này khiến act sử dụng hình ảnh có sẵn tại địa phương nếu có và chỉ cố gắng kéo nếu nó không có.

4. Chạy Natively trên Máy chủ (-self-hosted)

Đối với các quy trình làm việc nhắm đến macOS hoặc Windows (runs-on: macos-latest hoặc runs-on: windows-latest), nếu bạn đang chạy act trên cùng hệ điều hành máy chủ đó, bạn có thể hướng dẫn act không sử dụng một container Docker cho chính trình chạy. Thay vào đó, nó sẽ thực hiện các bước trực tiếp trên máy chủ của bạn. Điều này có thể hữu ích nếu khả năng tương thích Docker là một vấn đề hoặc nếu bạn cần truy cập trực tiếp vào các tài nguyên của máy chủ.

# Chạy các công việc macos-latest trực tiếp trên máy Mac của bạn
act -P macos-latest=-self-hosted

# Chạy các công việc windows-latest trực tiếp trên máy Windows của bạn
act -P windows-latest=-self-hosted

Cảnh giác: Chạy trực tiếp trên máy chủ bỏ qua sự cách ly do Docker cung cấp. Các bước của quy trình sẽ có quyền truy cập vào hệ thống tệp của bạn và có thể thay đổi môi trường máy chủ của bạn. Sử dụng tùy chọn này với sự cẩn thận. Các bước trong công việc mà rõ ràng sử dụng các container Docker (như các container dịch vụ hoặc các hành động container) sẽ vẫn sử dụng Docker.

Hạn chế và Cân nhắc

Mặc dù act rất hữu ích, nhưng quan trọng là phải nhận thức được những hạn chế của nó:

  • Không phải là bản sao hoàn hảo: act mô phỏng môi trường GitHub Actions nhưng không hoàn toàn giống. Sẽ có sự khác biệt về mạng, các dịch vụ hệ thống có sẵn (ví dụ: không có systemd trong các container Docker dễ dàng), tài nguyên phần cứng cụ thể, và bộ công cụ đã được cài đặt sẵn (trừ khi sử dụng các hình ảnh trình chạy rất lớn). Một số quy trình làm việc, đặc biệt là những quy trình phức tạp tương tác nhiều với hệ điều hành cơ sở hoặc các tính năng cụ thể của GitHub, có thể hoạt động khác biệt trong act so với trên GitHub.
  • Khác biệt ngữ cảnh: Một số phần của ngữ cảnh github có thể không đầy đủ hoặc chứa các giá trị mặc định/mô phỏng khi chạy tại địa phương. Ngữ cảnh secrets luôn cần đầu vào rõ ràng. Hỗ trợ ngữ cảnh vars có thể cũng có hạn chế so với môi trường GitHub trực tiếp.
  • Tính đồng thời: act thường chạy các công việc một cách tuần tự dựa trên các phụ thuộc needs của chúng. Nó không hoàn toàn mô phỏng khả năng của GitHub để chạy các công việc độc lập đồng thời bằng cách sử dụng các chiến lược ma trận trên nhiều trình chạy (mặc dù act hỗ trợ chạy các công việc theo ma trận, nhưng chúng thường chạy tuần tự tại địa phương).
  • Dịch vụ được lưu trữ: Các tính năng như caching (actions/cache) có thể hoạt động khác biệt hoặc yêu cầu cấu hình cụ thể tại địa phương so với dịch vụ caching tích hợp của GitHub. Các container dịch vụ được định nghĩa trong các quy trình nên hoạt động, vì act cũng sử dụng Docker cho chúng.
  • Tính khả dụng của nền tảng: Bạn chỉ có thể chạy các công việc trên nền tảng Linux trong Docker trên bất kỳ máy chủ nào hỗ trợ Docker (Mac, Windows, Linux). Để chạy các công việc macos-latest, bạn lý tưởng sẽ cần act trên macOS (hoặc sử dụng cờ -self-hosted trên macOS). Tương tự, các công việc windows-latest thường yêu cầu act trên Windows (hoặc -self-hosted trên Windows). Trong khi Docker có thể chạy các container Windows trên Windows, trọng tâm chính và sự hỗ trợ ổn định nhất của act xoay quanh các container Linux.

Khuyến nghị: Sử dụng act để phát triển nhanh chóng, kiểm tra cú pháp, kiểm tra logic cơ bản và lặp lại trên các công việc hoặc bước riêng lẻ. Luôn thực hiện xác minh cuối cùng bằng cách chạy các quy trình làm việc của bạn trên chính GitHub trước khi hợp nhất các thay đổi quan trọng, đặc biệt là đối với các quy trình triển khai. Tham khảo tài liệu chính thức của act để có bảng hỗ trợ chi tiết và các vấn đề đã biết.

Kết luận

Thử nghiệm các hành động của GitHub ở chế độ cục bộ là một yếu tố tăng năng suất lớn, biến vòng lặp gỡ lỗi có thể chậm chạp và tốn thời gian thành một quy trình nhanh chóng, lặp lại. Công cụ CLI act cung cấp một cách linh hoạt và mạnh mẽ để đạt được điều này bằng cách tận dụng Docker để mô phỏng môi trường trình chạy GitHub Actions trên máy tính địa phương của bạn.

Bằng cách tích hợp act vào quy trình làm việc của bạn, bạn có được:

  • Các vòng phản hồi nhanh hơn.
  • Giảm sự phụ thuộc vào việc đẩy lên GitHub để thử nghiệm.
  • Có khả năng sử dụng các định nghĩa hành động của bạn như một trình chạy tác vụ cục bộ.
  • Cải thiện khả năng gỡ lỗi.

Mặc dù nó có những hạn chế và không phải là sự thay thế hoàn hảo 1:1 cho môi trường GitHub trực tiếp, act bao phủ một loạt trường hợp sử dụng rộng lớn và giảm đáng kể ma sát liên quan đến phát triển các quy trình làm việc GitHub Actions đáng tin cậy và hiệu quả. Cài đặt nó, thử chạy các quy trình làm việc hiện có của bạn tại địa phương, và trải nghiệm những lợi ích của việc nghĩ toàn cầu trong khi hành động địa phương.

💡
Bạn có muốn một công cụ Kiểm tra API tuyệt vời được tạo ra tài liệu API đẹp mắt?

Bạn có muốn một nền tảng tích hợp, Tất cả trong một cho Nhóm Phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng tất cả các yêu cầu của bạn, và thay thế Postman với giá cả phải chăng hơn nhiều!
button