このブログをご覧のみなさん、こんにちは。

Jenkins をカスタマイズすることで、継続的デリバリーがかなり便利になります。

デプロイ後にメール通知までを Jenkis で自動化しましたが、デプロイの前にリリースする内容のタグ付けも Jenkins で自動化できると便利です。

ではどうすれば良いでしょう?

Jenkins に Git Plugin を入れるとこういったことが簡単かつセキュアに自動化できます。他にも git pushgit mergegit merge; git push といったこともできます。

Git Plugin とは?

そのまんまなので省略します。2015/03/28 現在のバージョンは 2.3.5 です。

インストール

[Jenkins の管理]→[プラグインの管理]→[利用可能タブ]を選択して、Git Plugin を選択してインストールします。

初期設定

Credential 設定

認証に関する情報を設定します。

[認証情報]→[グローバルドメイン]→[認証情報を追加]を選択して、認証情報を追加します。

設定できる情報は

  • ユーザー名とパスワード
  • SSH ユーザー名と秘密鍵
  • 証明書

で、ユーザー名とパスワードの場合は

  • スコープ : グローバルとシステムがあります。 git pull/git push などに使用する場合はグローバルで作成します。
  • ユーザー名/パスワード/説明 : そのまんまの意味

となります。

git push を Jenkins で実行する

シェルで実行するか、Git Publisher で実行するか選択できます。前者は ssh で接続しない場合はパスワードが見えてしまい、ssh で接続する場合は Jenkins を実行しているユーザになるという制約条件があります。

以下は Git Publisher での設定になります。

  • Push Only If Build Succeeds : ここをチェックすると、ビルド成功時のみ Git のコマンドを行います。ビルドに失敗したものを push する意味はないので、基本チェックをつけるのがいいでしょう。

Tag

  • Tag to push : タグ付けする名前
  • Tag message : タグのメッセージ(git tag -m で指定する部分)
  • Create new tag : ここをチェックすると、タグを作る(=つけないとタグを作らない)
  • Update new tag : ここをチェックすると、タグを更新する
  • Target remote name : origin などを指定

Branch

  • Branch to push : push するブランチ名
  • Target remote name : origin などのリモート名

まとめ

これらを駆使することで、タグ付けした後にデプロイし、その後にメール通知を Jenkins で自動的に可能となります。