私のサーバーには、github から master ブランチを取得してビルドし、アーティファクトを tomcat にデプロイする bash スクリプトがあります。この sh を呼び出す github Web URL フックを作成することにしました。私のサーバーは Java を実行しているため、groovy を使用しています。でテストスクリプトを書きましtest.sh
た/home/madhead/scripts
:
echo "SHELL"
touch /home/madhead/test_`date +%d_%m_%Y_%H_%M_%S` # To see if script is actually called
環境変数はin にSCRIPTS
設定されています。私のgroovletには/home/madhead/scripts
/home/madhead/.bashrc
println "GROOVY"
println '$SCRIPTS/test.sh'.execute().text
println `whoami'.execute().text` //Prints madhead
println `env'.execute().text` //Prints all environment variables for madhead, SHELL is /bin/bash and SCRIPTS is /home/madhead/scripts in this output.
「GROOVY」はhtmlのprintendですが、groovletを呼び出すと「SHELL」もテストファイルも作成されません。したがって、スクリプトは呼び出されません。私は試した
println '/home/madhead/scripts/test.sh'.execute().text
groovlet では効果がありません。groovy/java から bash スクリプトを呼び出すにはどうすればよいですか? また、println 'echo test'.execute().text
テストを html に出力しますが、println 'echo $SCRIPTS'.execute().text
何も出力しません。なんで?