GeekFactory

int128.hatenablog.com

Jenkinsで自分でビルドしたGitコマンドを使う

Jenkins Agentで自分でビルドしたGitコマンドを使う方法を説明します。新しいバージョンのGitを使いたい場合に有用です。

方針

JenkinsにはGitやAntなどの外部ツールを管理する機能があります。 外部ツールが必要になった場合に自動的にインストールスクリプトを実行することもできます。

設定方法

JenkinsのGlobal Tool ConfigurationにあるGit installationで、以下を設定します。

  • Name:適当な名前(例えば compiled-git)
  • 自動インストール:チェック
  • コマンド実行
    • ラベル:自動インストールを行うノードを限定する場合はラベルを指定します。
    • ツールホーム: bin/git

コマンドは以下を指定します。

GIT_VERSION=2.11.0
GIT_HOME="`pwd`"
echo "Using $GIT_HOME/bin/git"
if [ ! -x bin/git ]; then
  curl -LO "https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz"
  tar -zxf "v${GIT_VERSION}.tar.gz"
  cd "git-${GIT_VERSION}"
  make configure
  ./configure --prefix="$GIT_HOME"
  make install
fi

これで設定は完了です。

実行

Jenkins Slaveにあらかじめ開発用パッケージを入れておく必要があります。RHEL系の場合は以下になります。

yum -y groupinstall 'Development Tools'
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker

Gitを利用するジョブを実行してみましょう。初回のみGitのダウンロードとコンパイルが実行されるはずです。

CentOSに標準で入っているGitが古すぎてJenkinsのgit cloneが失敗する場合に使いました。Git以外にも応用できるので、いろんな場面で役に立つと思います!

改訂新版Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

改訂新版Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)