Gradle SSH Plugin 1.0.2をリリースした
Gradle SSH Plugin 1.0.2をリリースしました.
SSH Pluginを使うと,下記のようにGradleからSSHでコマンドを実行したりファイルを送受信したりできます.
// build.gradle plugins { id 'org.hidetake.ssh' version '1.0.2' } 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' } } }
詳しい使い方は https://gradle-ssh-plugin.github.io をご覧ください.
New Feature in 1.0.2
put
コマンドでリモートのファイルに文字列を書き込めるようになりました.下記のようにファイルパス,文字列,バイト配列を指定できます.
// specify a file path, File object or Interable<File> put file: 'local_file', into: '/remote/file' put file: buildDir, into: '/remote/folder' put files: files('local_file1', 'local_file2'), into: '/remote/folder' // specify a string put text: 'hello world', into: '/remote/script.sh' // specify a byte array put bytes: [0xff, 0xff] as byte[], into: '/remote/fixture.dat'
下記のように複数行の文字列も指定できます.
put text: '''#!/bin/sh echo 'hello world' echo 'hoge' ''', into: '/tmp/deploy.sh'
実は,この機能は2011年頃のプロトタイプでは実装済みでしたが,プロダクトではずっと放置していました.