JenkinsとGitLabは同一サーバ上で、以下のようにアクセスするイメージです。
* http://example.com/jenkins/
* http://example.com/gitlab/
-- Linux(Ubuntu)での作業 --
(1)
/var/lib/jenkins/.ssh/gitlab/id_rsa(パーミッションは600)と/var/lib/jenkins/.ssh/gitlab/id_rsa.pubを用意します。
* /var/lib/jenkins/はjenkinsユーザのホームディレクトリです。
* 同一サーバ上で作成した公開鍵だと後述のGitLabへの登録時に"Key can't be fingerprinted"というエラーが出て登録出なかったので、とりあえず、他所で鍵を作って、それを登録しました。
(2)
/var/lib/jenkins/.ssh/config を編集します。
Host example.com
User git
Hostname example.com
IdentityFile /var/lib/jenkins/.ssh/gitlab/id_rsa
-- GitLabでの作業 --
(1)
任意のグループにプロジェクト(レポジトリ)を作成して、初期化コミットしておきます。以下、仮に"xxx"グループに"yyy"レポジトリを作成したとします。
* 何のコミットも無いと、後述の、プロジェクトへのメンバー追加が出来ませんでした。
(2)
HookのURLを、以下の形式で設定をしておきます。
http://example.com/jenkins/git/notifyCommit?url=git@example.com:xxx/yyy.git
GitLabにJenkins用のユーザを作成します。
(4)
(1)で作成したプロジェクトに、(2)で作成したJenkins用のユーザを"Reporter"以上で登録します。
* ある意味、最強の"Reporter"です。。。
(5)
Jenkinsユーザでログインしなおして公開鍵を登録します。この公開鍵は、前述の"/var/lib/jenkins/.ssh/gitlab/id_rsa.pub"です。
-- Jenkinsでの作業 --
(1)
Jobを"Build a free-style software project"で新規作成します。
(2)
"Source Code Management"で"Git"を選択して"git@example.com:xxx/yyy.git"を入力します。
(3)
Manage Jenkins > Configure System > Git plugin で
"Global Config user.name Value"と"Global Config user.email Value"を入力します。
"Build Triggers"で"Poll SCM"にチェックを入れます。
(5)
"Build Now"してビルドが成功すれば、Jenkins側の設定はOKです。また、GitLabにコミットして、Jenkins側でビルドが走れば一通りOKです。
--
これで、Phingとつなげれば。。。
No comments:
Post a Comment