Eukleides project

from http://d.hatena.ne.jp/u5_h/

Weekly Pull Req #23 how to start lint in travis-ci

プライベートでバタバタしていたので、先週、今週とほとんど時間が取れませんでしたが、なんとか生きてます。

 

2件ともlintに関するものです。

github.com

block chain系のopen consensus protocolの実装であるharmoryにおいて、lintを通してほしいとのことで、cycromatic complexity以外の細いやつをやっつけました。

ちょっと工夫した点として、

[lint] fix ineffassign #708 · harmony-one/harmony@a835435 · GitHub

api/service/explorer/service.goのtoIntを返すところを無名関数にしたことが挙げられます。

前のコードだとerrチェックしてないって怒られるので、必ずifの終わりをtoInt, errと揃えるには無名関数で条件分けしてtoIntとerrをreturnさせるしかないかなと。こちらは特に問題なくマージされました。

 

2件目

github.com

k8sのネイティブエッジコンピューティングフレームワークであるkubeedge

こちらはCIで動くlintをあるパッケージに導入してほしいとのことなのでlintを導入してみました。CIはtravis-ciを利用しているようで.travis.ymlのbefore_scriptにgolangci-lintをinstallするようにしました。

github.com

導入方法は上のREADMEにあるcurlでinstallスクリプトを取得して$(go env GOPATH)/binにインストールします。

次に、scriptにmake cloud_lintというルールのmakeコマンドを貼り、最後にMakefileにgolangci-lint runのコマンドを書きます。

 

あとは、失敗したlintをひたすら直すのみです。kubeedgeのe2eテストは不安定なのか、Makefileのコメントを直すだけでfailするようになってしまいましたが、おそらくこれでいけるんじゃなかろうかと思ってます。