Trong bài viết này mình xin chia sẻ cách mình cấu hình tự động Linting và Formatting code.
Thông thường, mỗi khi code xong bạn sẽ tiến hành review, chạy test trước khi có thể commit và push lên git. Nhưng đôi khi bạn có thể sẽ quên làm việc này push luôn lên git.
Pre-commit
pre-commit hooks là một cơ chế của hệ thống điều khiển phiên bản git. Họ cho phép bạn thực thi lệnh ngay trước khi commit. Có một gói Python được gọi là pre-commit cho phép bạn tạo và sử dụng các pre-commit hook với giao diện đơn giản hơn. Gói Python có một hệ thống plugin để tự động tạo các pre-commit hook. Nó không chỉ dành cho các dự án Python mà còn cho bất kỳ dự án nào.
Trong bài viết này, mình sẻ sử dụng nó với cloudformation, môt tools IaC của aws (mình hay đùa là IaT – text), trước khi mình commit code lên git thì mình sẽ chạy lệnh
Lệnh này có tác dụng kiểm tra xem code của mình có bị lỗi cú pháp ở đâu không hay lỗi phụ thuộc vòng tròn…vv
Cấu hình
Cài đặt python
Bạn truy cập vào link này để cài đặt.
Cài đặt pip
Dối với linux
Đối với macOS
Cài đặt pre-commit
Tạo file cấu hình
Trog thư mục dự án, mình tạo file .pre-commit-config.yaml với nội dung như sau
Files: là đường dẫn dẫn đến nơi chứa template.yaml, nếu bạn để trong một sub floder.
exclude: file mà bạn không muốn thực thi pre-commit.
sau đó chạy lệnh
Sau đó mình sẻ test bằng cách tạo một thay đôi trong file template, sau đó commit nó lên
Hook đã được thục thi.
Tùy vào ngôn ngữ mà bạn đang code, mà bạn sẽ cấu hình file .pre-commit-config.yaml cho phù hợp, dưới đây là file mẫu cho Terraform.