Cách dùng Kiểm tra GitHub Actions
- Dán nội dung file workflow, mở tệp, hoặc tải mẫu.
- Lỗi YAML được hiển thị đầu tiên, kèm số dòng.
- Sau đó công cụ kiểm tra trigger, job, step,
needs, biểu thức, lịch cron và permissions. - Các kiểm tra thực hành tốt nhất sẽ cảnh báo action đã lỗi thời, action bên thứ ba chưa ghim phiên bản, thiếu timeout và rủi ro script injection.
Các lỗi workflow thường gặp mà công cụ này phát hiện
- Sự kiện hoặc khóa không tồn tại — gõ sai như
pull-requestthay vìpull_request, hoặcrun-onthay vìruns-on. - Đồ thị job bị lỗi —
needstrỏ tới một job không tồn tại, hoặc các job phụ thuộc vòng tròn lẫn nhau. - Step có cả hoặc không có
usesvàrun, và tham chiếuusesthiếu phiên bản (@v4). - Biểu thức —
${{ }}không cân bằng, context không tồn tại và tham chiếu tới output của step không có thật. - Cron không hợp lệ — lịch phải có đủ năm trường; công cụ sẽ giải thích thời điểm chạy (theo UTC).
- Lệnh đã lỗi thời như
::set-outputvà::save-state, được thay bằng$GITHUB_OUTPUTvà$GITHUB_STATE.
Kiểm tra bảo mật
Nếu đưa trực tiếp ${{ github.event.pull_request.title }}, nội dung issue hoặc tên nhánh vào trong run:, bất kỳ ai mở pull request đều có thể chèn lệnh shell. Hãy truyền các giá trị này qua biến môi trường. Công cụ cũng cảnh báo pull_request_target kết hợp với việc checkout code từ PR, thiếu permissions (khi đó token nhận quyền mặc định rộng) và action bên thứ ba được ghim vào tag có thể thay đổi thay vì commit SHA.
Tạo workflow mới bằng trình tạo GitHub Actions, giải thích lịch chạy bằng trình tạo biểu thức cron, và kiểm tra các file YAML khác bằng trình kiểm tra YAML.
Cũng được tìm dưới tên: github actions validator, lint github workflow, kiểm tra cú pháp github actions, validate workflow yaml github, actionlint online, github actions linter, kiểm tra file workflow github.
Các công cụ dùng kèm tốt với Kiểm tra GitHub Actions
- Kiểm tra Kubernetes YAML — Dán Deployment, Service, Ingress, ConfigMap hoặc cả một tệp nhiều tài liệu.
- Bảng lệnh Git — Mọi lệnh Git bạn dùng hằng ngày, và cả những lệnh cần khi có sự cố, được giải thích trong một dòng.
- Tạo Kubernetes YAML — Nhập tên ứng dụng, image và cổng, bạn sẽ có ngay Kubernetes YAML sẵn sàng cho production: một Deployment với probe, giới hạn tài nguyên và security context được gia cố, cùng Service, Ingress có TLS, ConfigMap, Secret và HorizontalPodAutoscaler mà bạn chọn — tất cả trong một file, sẵn sàng cho kubectl apply.
- Trình tạo systemd Service — Chạy ứng dụng của bạn như một dịch vụ Linux đúng chuẩn, tự khởi động cùng hệ thống và tự restart khi bị crash.
Câu hỏi thường gặp
Công cụ này có giống actionlint không?
Công cụ có kiểm tra reusable workflow và composite action không?
on: workflow_call và các job gọi reusable workflow (uses: ở cấp job). Các file action.yml của composite action hiện chưa được kiểm tra.Vì sao nên ghim action vào commit SHA?
@v4 có thể bị chủ sở hữu action di chuyển — hoặc kẻ tấn công nếu chiếm được tài khoản đó. Commit SHA đầy đủ thì không thể thay đổi, nên workflow của bạn chạy đúng đoạn code bạn đã xem xét.