>KotlinKotlinのコードをktlintでチェックしてDangerでGitHubのPRへ通知する2018/01/29最近、仕事で初めてKotlinでサーバーサイドアプリケーションを書く機会がありました。Senderを作りました。Serverに対してzabbix_senderコマンドを使ってメトリクスを登録できます。いろんな言語のバインディングがあるので、今回はJava版を参考にしました。https://www.zabbix.org/wiki/Docs/protocols/zabbix_sender/1.8/java_examplektlintJavaだとcheckstyleとかでソースコードのフォーマットをチェックできると思うのですが、Kotlinだとktlintでチェックできるみたいなのでやってみました。Gradleで実行するようにしました。build.gradleは以下のような感じになります(抜粋)。ktlintCheckを実行するか、ビルドしても実行されます。設定によって異なりますが、結果はbuild/reports/ktlint以下に出力されます。GitHubのPRに通知するチェックするだけではあんまり意味がなく、よりわかりやすく通知するためにGitHubに通知します。通知にはDangerを使いCIはCircleCIを使いました。Dangerファイルは以下のような感じになります。'build/reports/ktlint/ktlint-main.xml'ktlintの指摘があるのにGitHubのPRにコメントがつかなくて、なんでかなと思っていたのですがcheckstyle_format.base_pathの指定が違っていました。checkstyle_format.base_pathには通常はDir.pwdを設定します。ktlintの結果xmlに記載されるパスは絶対パスが記載されていてdanger-checkstyle_format実行時に絶対パスをレポジトリのパスに置換してくれています。その時に置換するパスを指定するのがcheckstyle_format.base_pathになります。今回ktlintを実行すると以下のようなxmlファイルが出力されました。name="/repo/src/main/kotlin/com/beeete2/zabbix/sender/ZabbixSender.kt"></file></checkstyle>通常であれば、ktlintとDangerを実行するコンテナ(ホスト)は同じだと思うのですが、今回は違っており更にレポジトリのマウントパスも違っていたのでDir.pwdを指定しても置換ができずにコメントができませんでした。今回は/repoが不要なのでcheckstyle_format.base_pathに/repoを指定することでうまくコメントができるようになりました。まとめ今回初めてDangerを使ったのですが色々な条件をつけてコメントができるみたいなので、チームで決めた指摘を自動化できてかなり良いものだと感じました。コメントをキャンセルメールアドレスが公開されることはありません。form.名前メールアドレスサイト関連記事KotlinKotlinでサーバーサイドアプリを実装した感想Java歴はそれなりにあるのですが最近はJavaよりPHPを書いていたり、またAndroidアプリ開発をしないのでKotlinとは無縁の生活をしておりました。Web業界でJava(Kotlin)でDIしようと思ったらSpringが有名だと思います。ConstraintLayoutのお勉強Androidはいろいろ難しいところがあるのですが画面にビューを表示するレイアウトも慣れないと難しいものがあると思っています。AFFINGER5.。