Weekly Pull Req #23 how to start lint in travis-ci
プライベートでバタバタしていたので、先週、今週とほとんど時間が取れませんでしたが、なんとか生きてます。
2件ともlintに関するものです。
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件目
k8sのネイティブエッジコンピューティングフレームワークであるkubeedge
こちらはCIで動くlintをあるパッケージに導入してほしいとのことなのでlintを導入してみました。CIはtravis-ciを利用しているようで.travis.ymlのbefore_scriptにgolangci-lintをinstallするようにしました。
導入方法は上のREADMEにあるcurlでinstallスクリプトを取得して$(go env GOPATH)/binにインストールします。
次に、scriptにmake cloud_lintというルールのmakeコマンドを貼り、最後にMakefileにgolangci-lint runのコマンドを書きます。
あとは、失敗したlintをひたすら直すのみです。kubeedgeのe2eテストは不安定なのか、Makefileのコメントを直すだけでfailするようになってしまいましたが、おそらくこれでいけるんじゃなかろうかと思ってます。