Add go vet and staticcheck to CI validation pipeline #18

Closed
opened 2026-04-28 06:40:13 +07:00 by codex · 3 comments
Collaborator

Summary

CI hiện tại chỉ chạy gofmtgo test, chưa chạy go vet hoặc staticcheck dù đây là baseline kiểm tra chất lượng hợp lý cho một repo Go nhỏ.

Problem

  • PR có thể merge dù còn các vấn đề tĩnh mà go vet hoặc staticcheck có thể phát hiện.
  • CI hiện chưa phản ánh đầy đủ mức validate mong muốn cho code Go trong repo.

Proposed scope

  • Cập nhật workflow CI để chạy thêm go vet ./... trên pull request.
  • Cập nhật workflow CI để chạy thêm staticcheck ./... trên pull request.
  • Pin version của staticcheck trong CI để tránh vỡ build do thay đổi ngoài ý muốn từ tool.
  • Giữ thay đổi ở mức tối thiểu, tập trung vào một baseline lint/check thực dụng.

Acceptance criteria

  • CI fail nếu go vet ./... trả về lỗi.
  • CI fail nếu staticcheck ./... trả về lỗi.
  • CI vẫn tiếp tục chạy gofmtgo test như hiện tại.
  • Không thêm golangci-lint trong issue này.
## Summary CI hiện tại chỉ chạy `gofmt` và `go test`, chưa chạy `go vet` hoặc `staticcheck` dù đây là baseline kiểm tra chất lượng hợp lý cho một repo Go nhỏ. ## Problem - PR có thể merge dù còn các vấn đề tĩnh mà `go vet` hoặc `staticcheck` có thể phát hiện. - CI hiện chưa phản ánh đầy đủ mức validate mong muốn cho code Go trong repo. ## Proposed scope - Cập nhật workflow CI để chạy thêm `go vet ./...` trên pull request. - Cập nhật workflow CI để chạy thêm `staticcheck ./...` trên pull request. - Pin version của `staticcheck` trong CI để tránh vỡ build do thay đổi ngoài ý muốn từ tool. - Giữ thay đổi ở mức tối thiểu, tập trung vào một baseline lint/check thực dụng. ## Acceptance criteria - CI fail nếu `go vet ./...` trả về lỗi. - CI fail nếu `staticcheck ./...` trả về lỗi. - CI vẫn tiếp tục chạy `gofmt` và `go test` như hiện tại. - Không thêm `golangci-lint` trong issue này.
Author
Collaborator

Final Requirements

Summary: Thêm go vet ./... vào workflow CI cho pull request để CI phản ánh đầy đủ baseline validation của repo.

Scope:

  • Cập nhật workflow CI hiện tại để chạy thêm go vet ./....
  • Giữ nguyên các bước kiểm tra hiện có là gofmtgo test.
  • Chỉ thay đổi ở mức tối thiểu trong pipeline CI.

Out of scope:

  • Không thêm golangci-lint, staticcheck, hoặc công cụ lint mới khác.
  • Không refactor mã ứng dụng chỉ để “làm đẹp” CI.
  • Không thay đổi phạm vi trigger của workflow ngoài nhu cầu cần thiết cho PR validation.

Acceptance criteria:

  • Pull request CI chạy go vet ./... cùng với các bước kiểm tra hiện có.
  • CI fail khi go vet ./... trả về lỗi.
  • go test ./...gofmt -l . vẫn tiếp tục được enforce như hiện tại.
## Final Requirements **Summary:** Thêm `go vet ./...` vào workflow CI cho pull request để CI phản ánh đầy đủ baseline validation của repo. **Scope:** - Cập nhật workflow CI hiện tại để chạy thêm `go vet ./...`. - Giữ nguyên các bước kiểm tra hiện có là `gofmt` và `go test`. - Chỉ thay đổi ở mức tối thiểu trong pipeline CI. **Out of scope:** - Không thêm `golangci-lint`, `staticcheck`, hoặc công cụ lint mới khác. - Không refactor mã ứng dụng chỉ để “làm đẹp” CI. - Không thay đổi phạm vi trigger của workflow ngoài nhu cầu cần thiết cho PR validation. **Acceptance criteria:** - Pull request CI chạy `go vet ./...` cùng với các bước kiểm tra hiện có. - CI fail khi `go vet ./...` trả về lỗi. - `go test ./...` và `gofmt -l .` vẫn tiếp tục được enforce như hiện tại.
codex changed title from Add go vet to CI validation pipeline to Add go vet and staticcheck to CI validation pipeline 2026-04-28 06:45:21 +07:00
Author
Collaborator

Final Requirements

This comment supersedes the previous Final Requirements on this issue.

Summary: Thêm go vet ./...staticcheck ./... vào workflow CI cho pull request để thiết lập baseline kiểm tra chất lượng Go thực dụng cho repo.

Scope:

  • Cập nhật workflow CI hiện tại để chạy thêm go vet ./....
  • Cập nhật workflow CI hiện tại để chạy thêm staticcheck ./....
  • Pin version của staticcheck trong CI để tránh nhiễu do upgrade ngoài ý muốn.
  • Giữ nguyên các bước kiểm tra hiện có là gofmtgo test.
  • Giữ thay đổi ở mức tối thiểu trong pipeline CI.

Out of scope:

  • Không thêm golangci-lint trong issue này.
  • Không thêm các style linter hoặc lint framework khác.
  • Không refactor mã ứng dụng chỉ để “làm đẹp” kết quả lint.
  • Không thay đổi phạm vi trigger của workflow ngoài nhu cầu cần thiết cho PR validation.

Acceptance criteria:

  • Pull request CI chạy go vet ./... cùng với các bước kiểm tra hiện có.
  • Pull request CI chạy staticcheck ./... với version được pin rõ trong workflow.
  • CI fail khi go vet ./... hoặc staticcheck ./... trả về lỗi.
  • go test ./...gofmt -l . vẫn tiếp tục được enforce như hiện tại.
## Final Requirements This comment supersedes the previous Final Requirements on this issue. **Summary:** Thêm `go vet ./...` và `staticcheck ./...` vào workflow CI cho pull request để thiết lập baseline kiểm tra chất lượng Go thực dụng cho repo. **Scope:** - Cập nhật workflow CI hiện tại để chạy thêm `go vet ./...`. - Cập nhật workflow CI hiện tại để chạy thêm `staticcheck ./...`. - Pin version của `staticcheck` trong CI để tránh nhiễu do upgrade ngoài ý muốn. - Giữ nguyên các bước kiểm tra hiện có là `gofmt` và `go test`. - Giữ thay đổi ở mức tối thiểu trong pipeline CI. **Out of scope:** - Không thêm `golangci-lint` trong issue này. - Không thêm các style linter hoặc lint framework khác. - Không refactor mã ứng dụng chỉ để “làm đẹp” kết quả lint. - Không thay đổi phạm vi trigger của workflow ngoài nhu cầu cần thiết cho PR validation. **Acceptance criteria:** - Pull request CI chạy `go vet ./...` cùng với các bước kiểm tra hiện có. - Pull request CI chạy `staticcheck ./...` với version được pin rõ trong workflow. - CI fail khi `go vet ./...` hoặc `staticcheck ./...` trả về lỗi. - `go test ./...` và `gofmt -l .` vẫn tiếp tục được enforce như hiện tại.
Collaborator

Implementation Update

Summary

  • Added a new vet job in CI to run go vet ./... on pull requests.
  • Added a new staticcheck job in CI.
  • Pinned staticcheck installation to honnef.co/go/tools/cmd/staticcheck@2025.1.1.
  • Kept existing fmt (gofmt -l .) and test (go test ./...) jobs unchanged.

Local verification

  • gofmt -l .
  • go test ./...
  • go vet ./...
  • go install honnef.co/go/tools/cmd/staticcheck@2025.1.1
  • $(go env GOPATH)/bin/staticcheck ./...

All commands completed successfully.

Opening PR next with Fixes #18.

## Implementation Update ### Summary - Added a new `vet` job in CI to run `go vet ./...` on pull requests. - Added a new `staticcheck` job in CI. - Pinned staticcheck installation to `honnef.co/go/tools/cmd/staticcheck@2025.1.1`. - Kept existing `fmt` (`gofmt -l .`) and `test` (`go test ./...`) jobs unchanged. ### Local verification - `gofmt -l .` - `go test ./...` - `go vet ./...` - `go install honnef.co/go/tools/cmd/staticcheck@2025.1.1` - `$(go env GOPATH)/bin/staticcheck ./...` All commands completed successfully. Opening PR next with `Fixes #18`.
Sign in to join this conversation.
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thuanle/claw-email#18