skillup

技術ブログ

Git

Git→Jenkinsの連携

投稿日:

気がついたら投稿数が50超えてましたね。

ガチンコ塾とあわせて更新してますが、2ヶ月ちょいなので結構いいペースで更新しているかと思います。

大切なのはこれを継続できるかですね。ただ、ガチンコ塾に比べるとちょっと体系化されてません。

これはサイトの性質上仕方ない面もありますが、徐々に修正していきたいです。

Git→Jenkinsの連携

プッシュ時のGitの起動

CIを行う場合Jenkinsを使うケースが多いと思いますが、理想的なのはコミットした瞬間にビルドすることです。

Gitの場合、なんらかの変化が起きたときにする動作はリポジトリの中のhooksというディレクトリ内にスクリプトを書くと起動します。

~.sampleとなっているファイルがそうです。

この場合、Gitは共有リポジトリで管理していることが多いかと思います。

つまりプッシュを受けた時点で動作をします。その場合、post-receiveが対象ファイルになります。(起動させる場合)

ちなみに全パターンのケースは下記に詳しくのっています。

http://qiita.com/khlizard/items/dfe1ec9d82c0ed5da7c6

Jenkis側での対処

Jenkins側で自動ビルドを行う場合、

wget https://jenkinsのURL/job/プロジェクト名/build?delay=3sec

というスクリプトを書けばOKです。

ただ通常は認証をしていたりするケースが多いと思いますので、その場合は一工夫いります。

ユーザー設定ページでトークン取得

まずは自分のトークンを取得しましょう。

ユーザの設定ページのアドレスは下記です。

http://jenkinsのURL/user/ユーザー名/configure へアクセス

ユーザーの認証画面で[APIトークンの表示]をクリックし、コピペ

リモートビルドにチェックし、トークンを保存

次に設定プロジェクトの設定で[ビルド・トリガ]→[リモートからビルド]にチェックをいれ、認証トークンに好きな文字列を入力(APIのトークンとは違い、任意のトークンを入力できます。)

スクリプトに記述

post-receiveにスクリプトを記述

あとはchmod +xで実行権限を与えてあげればOKです。

ちなみに全体の記述に関しては下記を参考にしました。

http://hidari-lab.hatenablog.com/entry/git_post-commit-hook_with_jenkins

ちなみに/dev/nullを省略した場合、連携に失敗しました。これも追跡調査必要っぽいですねー

-Git
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

最新版のgitをソースから&git diffおさらい

Contents1 gitをソースから2 git diff gitをソースから gitはyumから入れてもいいんですが、バージョンが古かったりすると機能がいろいろと制限されるなどのデメリットもあります …

no image

Gitで差分を見やすく表示する方法

gitの差分確認ですが、デフォルトのコンソールの画面だと下記のようなわかりにくい表示になります。 差分をチェックしたい場合はやはり左右にわけてしっかり見ることができたほうがいいですね。 この実現の仕方 …

no image

Gitでのbranch 新ブランチの作成&リモート反映&別環境反映

gitを使っているとわけのわからないことは多いのですが(爆)、その中の1つがbranch(ブランチ)でしょう。 これも説明をきいてもわからないのですが、自分でそのケースを学習してみればすぐにわかると思 …

no image

gitの作業ディレクトリ・インデックス・HEADに関して

gitを使い始めてしばらくたちますが、まだ明確なイメージがつかめていないです(汗) みようみまねでやっていて、ポイント、ポイントで困ったことは検索してなんとか対応してきましたが、体系的な理解ができてい …

no image

gitのfetchに関して

gitでリモートの変更を取り込む場合、大きく分けるとfetchとpullがあります。 両者の違いですが、 fetch=一度、変更を取り込んで、ローカルの変更と相違点を確認できます。確認後mergeを行 …