正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

マージ結果パイプライン

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

マージ結果パイプラインは、ソースブランチとターゲットブランチをマージした結果に対して実行されます。マージリクエストパイプラインの一種です。

GitLabはマージ結果で内部コミットを作成するため、パイプラインはそれに対して実行できます。このコミットはいずれのブランチにも存在しませんが、パイプラインの詳細で表示できます。内部コミットの作成者は常に、マージリクエストを作成したユーザーとなります。

パイプラインは、パイプラインを実行した時点でのターゲットブランチに対して実行されます。ソースブランチで作業している間、ターゲットブランチは変更される可能性があります。マージ結果が正確であることを確認したい場合は、いつでもパイプラインを再実行できます。

ターゲットブランチに変更があり、それがソースブランチの変更と競合する場合、マージ結果パイプラインは実行できません。このような場合、パイプラインはマージリクエストパイプラインとして実行され、merge requestとしてラベル付けされます。

前提要件

マージ結果パイプラインを使用するには、次の前提要件を満たす必要があります:

マージ結果パイプラインを有効にする

プロジェクトでマージ結果パイプラインを有効にするには、少なくともメンテナーロールが必要です:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定>マージリクエストを選択します。
  3. マージオプションセクションで、マージされた結果のパイプラインを有効にするを選択します。
  4. 変更を保存を選択します。

マージリクエストパイプラインを使用するようにパイプラインを設定しないと、チェックボックスをオンにしても、マージリクエストが未解決の状態のままになったり、パイプラインがドロップされたりする可能性があります。

トラブルシューティング

rules:changes:compare_toでジョブまたはパイプラインが予期せず実行される

マージリクエストパイプラインでrules:changes:compare_toを使用すると、ジョブまたはパイプラインが予期せず実行されることがあります。

マージ結果パイプラインでは、GitLabが作成する内部コミットが、比較対象のベースとして使用されます。このコミットには、MRブランチの先端よりも多くの変更が含まれている可能性があり、予期しない結果が生じます。

成功したマージ結果パイプラインが失敗したブランチパイプラインをオーバーライドする

パイプラインが完了している設定が有効になっている場合、失敗したブランチパイプラインが無視されることがあります。この問題を追跡するために、イシュー385841がオープンになっています。