3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SubversionにソースコードがコミットされたときにJenkinsでビルドする

Posted at

やりたいこと

フックスクリプトでJenkinsのビルドを実行するURLにリクエストすればいいのですが、今回、同一リポジトリでドキュメント類とソースコードを管理しています。
そのため、ソースコードがコミットされた時だけ、Jenkinsのビルドジョブを実行したいです。

フックスクリプトの中で、更新のあったファイルを調査し、ソースコードの場合だけJenkinsのジョブを実行するように作成します。

リポジトリの構成

今回は以下のような構成でファイルを配置しています。

/svn/repo/
 ├ branches
 ├ tags
 └ trunk
   ├ doc
   │  └ ドキュメント類
   └ src
     └ ソースコード

フックスクリプトを書く

今回はコミットが完了した後に実行される、post-commitを利用します。
post-commitでは、第1引数にリポジトリのパス、第2引数にリビジョン番号が渡されます。
この情報と、svnlookコマンドを利用して、変更があったファイル一覧を取得できます。この実行結果をgrepして、ソースコードが含まれている場合には、Jenkinsのビルドジョブをcurlで実行します。

post-commit
# !/bin/sh

REPOS="$1"
REV="$2"

svnlook changed "$REPOS" -r "$REV" | grep "/trunk/src/"

if [ $? -eq 0 ]; then
  curl [Jenkinsのビルドを実行するためのURL]
fi

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?