自由課題

学んだり、考えたり、試したりしたこと。

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の管理 -> システムの管理 -> 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 FormatterRaw 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.