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のfetch/merge/rebaseについて

git使って結構立ってるんですがいまだに仕組みがややこしく結構難しいなあと感じています。 基本的な使い方は以前紹介した「gitの紹介と基本的な使用法について」でいいと思います。 開発をやっていますと一 …

no image

git stash ~一時的な内容の保存~

gitでコミットせずに、作業を保存したいときがあるとおもいます。 例えばあるブランチで作業していて、実は今の作業内容が別のブランチでの反映が必要になったときなどです。 gitはブランチの切り替え(gi …

no image

Gitデタッチ、インデックス、プッシュなど

まとまってませんが、Gitであったトラブルについてのメモです。 Contents1 デタッチ状態2 インデックス一覧&削除2.1 インデックスの一覧2.2 インデックスから取り除くとき3 git pu …

no image

gitの紹介と基本的な使用法について

Contents1 旧来のソース管理方法2 バージョン管理ツール2.1 バージョン管理とは?2.2 有名なバージョン管理ソフト3 Gitの基本的な使用法3.1 初期化(git init)3.2 基本的 …

no image

gulpに関して

gulpに関しての復習と色々と間違っていたところもあるのでまとめ。 ちなみに以前書いた記事は下記 gulpインストールとタスクの実行 Contents1 インストール2 タスクの実行3 npxコマンド …