気がついたら投稿数が50超えてましたね。
ガチンコ塾とあわせて更新してますが、2ヶ月ちょいなので結構いいペースで更新しているかと思います。
大切なのはこれを継続できるかですね。ただ、ガチンコ塾に比べるとちょっと体系化されてません。
これはサイトの性質上仕方ない面もありますが、徐々に修正していきたいです。
Contents
Git→Jenkinsの連携
プッシュ時のGitの起動
CIを行う場合Jenkinsを使うケースが多いと思いますが、理想的なのはコミットした瞬間にビルドすることです。
Gitの場合、なんらかの変化が起きたときにする動作はリポジトリの中のhooksというディレクトリ内にスクリプトを書くと起動します。
~.sampleとなっているファイルがそうです。
この場合、Gitは共有リポジトリで管理していることが多いかと思います。
つまりプッシュを受けた時点で動作をします。その場合、post-receiveが対象ファイルになります。(起動させる場合)
ちなみに全パターンのケースは下記に詳しくのっています。
Jenkis側での対処
Jenkins側で自動ビルドを行う場合、
wget https://jenkinsのURL/job/プロジェクト名/build?delay=3sec
というスクリプトを書けばOKです。
ただ通常は認証をしていたりするケースが多いと思いますので、その場合は一工夫いります。
ユーザー設定ページでトークン取得
まずは自分のトークンを取得しましょう。
ユーザの設定ページのアドレスは下記です。
http://jenkinsのURL/user/ユーザー名/configure へアクセス
ユーザーの認証画面で[APIトークンの表示]をクリックし、コピペ
リモートビルドにチェックし、トークンを保存
次に設定プロジェクトの設定で[ビルド・トリガ]→[リモートからビルド]にチェックをいれ、認証トークンに好きな文字列を入力(APIのトークンとは違い、任意のトークンを入力できます。)
スクリプトに記述
post-receiveにスクリプトを記述
1 |
/usr/bin/wget -O /dev/null --auth-no-challenge --http-user=ユーザー名 --http-password=ユーザーのトークン "https://jenkinsのURL/job/ユーザー名/build?token=プロジェクトのトークン" |
あとはchmod +xで実行権限を与えてあげればOKです。
ちなみに全体の記述に関しては下記を参考にしました。
Gitのpost-commit hookを使ってJenkinsにビルドして頂く
ちなみに/dev/nullを省略した場合、連携に失敗しました。これも追跡調査必要っぽいですねー