Gradle: Deploy Application Controlled by Git

I wrote the script to deploy application controlled by Git.


今回前提としたデプロイは、単純に git pull をしてコードを更新した後、 サーバを再起動するものです。 サーバから Git の リモートリポジトリへの認証は、 鍵ファイルを使って行っているものとします。

また Rails を前提としているので、 Rails 専用 の処理もあります。 他の言語でも応用できます。

応用次第で、 git で管理されているコードの中の一部をサーバにコピーすることもできます。


  • Gradle 3.2.1


Install gradle, and execute gradle init. Then gradle templates will be generated. There, write the script.


As follows.


デプロイ部分の処理は次の通りです。 現場によって変えて使う部分です。

  1. Connect to the server with ssh.
  2. Check the available amount of the storage with df. ここで Y または N をタイプして、後続の処理を実行するか否か決定します。
  3. Copy old code as backup.
  4. Get the new code and deploy it with git pull.
  5. Execute rake db:migrate. This is for Rails.
  6. Restart Apache. Show “Success” or “Failed” according to the previous command result.


You have to register the private key of the server forgit pull. If you change the code, SSH agent forward is available so you can use your own key for git pull.


The code is on GitHub. gradle-deploy