Saddler – công cụ giúp CI chạy rubocop và comment lỗi trực tiếp vào pull request.

bài viết trước mình đã mang đến cho bạn một cái nhìn ban đầu về CI và cách tích hợp CI vào rails app của bạn trên github bằng CircleCI.
Bài này, mình sẽ khai thác thêm khả năng tự động hóa của CircleCI để phục vụ việc kiểm tra coding convention và comment thẳng vào pull request.

Cách làm truyền thống

Bạn làm việc theo nhóm, thường khi có một pull request (PR), bạn lên review code, ngoài các review về logic, process, bạn còn review về coding convention, việc review này khá nhàm chán và mất thời gian cho cả hai. Và bạn muốn có một công cụ làm giúp mình việc này. Rubocop ra đời để chấm dứt ác mộng này.

Rubocop – code “xịn” hơn

Rubocop là một gem giúp đỡ việc kiểm tra convention, độ phức tạp thuật toán, blah blah.
Lợi ích của nó thì khỏi phải bàn rồi. Hiện, rubocop được sử dụng theo 2 cách:
– local: tự bạn kiểm tra dưới máy của mình trước khi commit.
– integrated: tích hợp nó vào CircleCI để chạy trong các lần build.
Với 2 cách này, rubocop sẽ báo cáo ra console (local) hoặc trong trang báo cáo build của CircleCI. Tuy nhiên, với mỗi cách, bạn sẽ phải đọc log rất khó khăn, và việc link nó sang code để hiểu rõ lỗi cũng vậy. Và đó là lý do ra đời của bài viết này.

Saddler – giúp rubocop báo cáo tốt hơn

Saddler là công cụ giúp bạn chỉ rõ lỗi của rubocop log ra, và nó comment thẳng vào code trong pull request của bạn luôn.
Screenshot from 2015-11-18 17:30:04

Tích hợp

  1. Gemfile
  1. Tạo file bin/run-rubocop.sh với nội dung:
  1. Trong circle.yml:
  1. Cấp quyền cho Saddler được comment vào repo.
    Bản chất của Saddler là nó sử dụng các API của github để comment vào các pull request, vậy nên bạn cần cấp quyền cho nó.
    Đầu tiên, bạn vào Personal access tokens và tạo ra 1 token mới với các quyền mặc định github đã tick sẵn.
    Screenshot from 2015-11-19 11:40:10
    Sau đó bạn sang CircleCI, vào dashboard của project, phía trên bên phải có mục Project settings (có bánh răng bên cạnh) -> Vào Environment variables (Cột bên phải, mục Tweaks), nhập:
  • name: GITHUB_ACCESS_TOKEN
  • Value: github token mà bạn mới tạo.
    Lưu lại.
    Screenshot from 2015-11-19 11:11:58
    Vậy là từ nay, mỗi lần tạo pull request, CircleCI sẽ chạy rubocop và comment vào code của bạn luôn nếu có lỗi => Tiết kiệm được kha khá thời gian 😀
    Để kiểm tra chắc chắn rằng saddler đã chạy đúng, bạn vào trang báo cáo của build trong CircleCi, mục $bin/run-rubocop.sh và kiểm tra:

Thêm tí nữa

Ngoài comment vào pull request, saddler còn hỗ trợ comment thẳng vào commit.
Ngoài CircleCI, saddler còn hỗ trợ các CI khác như Travis-CI hay Ci của chính bạn.
Ngoài rubocop, saddler còn hỗ trợ các tool check khác như [JSCS](http://jscs.info/).
Bạn có thẻ xem thêm ở trang github của saddler

Source code

Source code on git hub

Source code on git hub

Lập trình và hơn thế nữa

Spread the love
  • 1
  •  
  •  
  •  
  •  
    1
    Share

Leave a Reply

3 Comments on "Saddler – công cụ giúp CI chạy rubocop và comment lỗi trực tiếp vào pull request."

avatar
  Subscribe  
newest oldest most voted
Notify of
trackback

[…] ích mà CI mang lại, và biết cách tích hợp CI vào dự án của mình bằng CircleCI. Bài tiếp theo, mình sẽ đi sâu hơn vào việc cho CircleCi chạy rubocop để kiểm tra code của bạn […]

trackback

[…] và tích hợp linter, ci (về linter và ci, bạn có thể đọc thêm 2 bài viết về rubocop và circleci của mình để hiểu rõ […]

trackback

[…] và tích hợp linter, ci (về linter và ci, bạn có thể đọc thêm 2 bài viết về rubocop và circleci của mình để hiểu rõ […]