Gradle SSH Plugin 0.4.4 released
デプロイなどでGradleからSSHアクセスするためのプラグインGradle SSH Pluginのバージョン0.4.4をリリースしました。
build.gradleでプラグインを読み込めばすぐに使えます。以下はreloading Tomcatのサンプルです。
plugins { id 'org.hidetake.ssh' version '0.4.4' } remotes { webServer { host = '192.168.1.101' user = 'jenkins' identity = file('id_rsa') } } task deploy << { ssh.run { session(remotes.webServer) { put 'example.war', '/webapps' execute 'sudo service tomcat restart' } } }
0.4.4では、SFTPでディレクトリを上書きする時のエラーを直しました。Issue reportをいただいたので対応しました。
詳しい使い方は下記をご覧ください。
Gradle SSH Plugin · Deploy your App from Gradle
振り返り
- Keep
- 自動化されたテストがあると安心してリリースできる。今後もメンテしていく。
- リリースは早い方がいい。今回はBugに気づいてからリリースまで5日。まあまあかな。
- Problem
- JSchのエラーメッセージが分かりにくい。Issueでも文句が出てる。
- リリースプロセスが煩雑でめんどくさい。
- Try
- JSch例外をラップして分かりやすいメッセージをつけたい。
- リリースプロセスを定型化して書いておく。
リリースプロセス
gradle-ssh-pluginは自前でSSH処理を持たず、groovy-sshという単体実行可能なライブラリにSSH処理を切り出している。そのため、SSH処理に対して機能追加やバグ修正を行った場合は、まずgroovy-sshをリリースした後にgradle-ssh-pluginをリリースするという手順を踏む必要がある。
前提条件:
- リリース対象のPull Requestがすべてmerge済みであること
手順:
- groovy-sshのリリース
- gradle-ssh-pluginのリリース
- 関連するIssueにコメントを書く
自動化できそうなところ: