Jenkins/Gitlab Merge Request Builder PluginのREADME訳
はじめに
本記事は 2014/09/09(commit:d9ce6a4bef)時点の https://github.com/timols/jenkins-gitlab-merge-request-builder-plugin のREADMEを適当に訳したものです。 なお、本プラグインはApache License, Version 2.0となっています。 特にメニューの名称は実物を見ず適当に訳したので、間違っているかも知れません。
便利そうなので、時間を見て使ってみたいと思います。
Gitlab Merge Request Builder Plugin
merge requestをビルドすることを可能にするプラグインです。
本プラグインはGitlabのmerge requestのmerge元とmerge先のブランチを取得し、ビルドパラメータを通じてビルドします。ビルドが終了すると、Jenkinsはmerge requestにmerge requestが成功したかどうかに関するコメントを残します。
必要なもの
Git pluginに対する明示的な依存はありませんが、Jenkinsがプロジェクトのソースコードを取得することができないため、pluginをインストールすることを強く推奨します。
インストール
- JenkinsユーザがGitlab上に存在し、リポジトリに対するアクセスができることを確認してください。また、そのユーザはプロジェクトに対してReporterレベルのアクセス権を持つようにしてください。
- Jenkinsにプラグインをインストールします。
- プラグインは Jenkins プラグインリポジトリにホストされています。
Jenkins
->プラグインの管理
->利用可能なプラグイン
を選択します。Gitlab Merge Request Builder
を検索します。- プラグインをインストールします。
- Jenkinsを再起動します。
Jenkinsの管理
->システムの管理
->Gitlab Merge Requests Builder
を選択します。Gitlab Host URL
にGitlabサーバのベースURLを設定します。Jenkins Username
にJenkinsユーザの名前を設定します。(デフォルトはjenkinsです)- Jenkinsユーザの
Jenkins API Token
を設定します。このtokenはGitlabにログインし、user profileセクションに記載されています。 - 必要に応じて他の任意の設定を設定/編集します。もしGitlabがSSL接続でホストされている場合、証明書エラーを無視するようにしたくなるでしょう。
- 変更を保存するために"保存"します。
Jenkinsの管理
->グローバルセキュリティ設定
を選択し、Markup Formatter
をRaw HTMLに設定します。このことにより、Jenkinsがビルド履歴のリンクを表示するようになります。
ジョブの作成
- "新しいジョブ"から新規ジョブを作成します。
- "プロジェクト名"を設定します。
- (もしGitHubプラグインがインストールされている場合)GitlabプロジェクトのURLを
GitHubプロジェクト
に設定しても構いません。 ソースコード管理
セクションで以下の設定をします。Git
をクリックし、リポジトリURL、及び高度な設定内のorigin
にリポジトリ名を入力します。- forkされたリポジトリからのmerge requestのために、他のリポジトリのURL
${gitlabSourceRepository}
、及び高度な設定内の${gitlabSourceName}
にリポジトリ名を入力します。 Branch Specifier
内のorigin/${gitlabSourceBranch}
か、forkされたリポジトリからのmerge requestの場合には${gitlabSourceName}/${gitlabSourceBranch}
を入力します。Additional Behaviours
セクションで以下の設定を行います:Add
のドロップダウンボタンをクリックし、Merge before build
の項目をクリックします。- リポジトリの名前を
origin
(もしoriginがGitlabに対応する場合)に設定し、Branch to merge to
を${gitlabTargetBranch}
と入力します。 Prune stale remote-tracking branches
は設定しないようにしてください。
ビルド・トリガ
セクションにおいて以下の設定をします:Gitlab Merge Requests Builder
にチェックを入れます。Gitlab Project Path
を入力します。これはおそらくgitlabのhttp://git.tld/your_group/your_project
というURLに対応し、your_group/your_project
という形式になるでしょう。Target Branch Regex
はこのジョブが特定のブランチのためのものである場合にホワイトリストで設定されます。もし空のままにしておくと、設定されたProject Path内の全てのmerge requestがこのジョブのトリガとなるでしょう。- 必要に応じて、他のビルド前の設定、ビルドの設定、ビルド後の設定を設定します。
- 変更を保存するために
保存
を行います。
ジョブは"パラメータ・ビルド"をクリックし、適切なビルドパラメータを付与することにより手動でジョブを起動することができます。 パラメータは以下です。
- gitlabSourceRepository (forkされたリポジトリからのmerge requestの場合)
- gitlabSourceName (forkされたリポジトリからのmerge requestの場合)
- gitlabSourceBranch
- gitlabTargetBranch
- gitlabMergeRequestId
手動で起動したビルドはmerge requestにコメントが付与されないことに注意してください。
コントリビューションについて
- 最新のmasterをチェックアウトし、機能が実装されていない、もしくはバグがまだ直っていないことを確認してください。
- issue trackerを確認し、やろうとしていることを誰かが要求・コントリビュートしていないことを確認してください。
- プロジェクトをforkします。
- feature/bugfixブランチを作成します。
- コントリビュートする内容に満足するまでcommitもしくはpushします。
- コントリビュートする内容に対するテストを忘れないようにします。これは別の開発者が将来意図せずに壊してしまわないために重要なことです。
- バージョンや履歴を汚さないように気をつけてください。もし固有のバージョンが欲しい場合やどうしても必要な場合は構いませんが、そのコミット自体をcherry-pickできるようにcommitを隔離しておいてください。
Copyright
Copyright (c) 2013 Tim Olshansky. See LICENSE for further details.