Target 和 Source 分支未在 GitLab 管道中合并

Target and Source branch are not merged in GitLab pipeline

我目前正在试验 GitLab。目前,我正在使用 GitLab 的免费在线版本,我非常喜欢它。但目前,我正在尝试了解“合并请求”策略。假设我有两个分支:

  1. 高手
  2. 我的开发

现在,假设我在主分支上有一个名为“README1.md”的文件,在“mydev”分支上有一个名为“README2.md”的文件。接下来,我创建一个从“mydev”-branch 到 master-branch 的合并请求,并且我有以下 gitlab-ci.yml 文件:

image: node:current-alpine

test:
  only:
    - merge_requests
  stage: test
  script:
    - ls -al

因此,在创建合并请求时,管道运行并标记为“已分离”。但是“ls -al”只显示来自“mydev”分支的 README2.md 而不是来自主分支的 README1.md。 GitLab 文档统计“使用合并结果的管道,管道运行时就好像源分支的更改已经合并到目标分支中一样。”。所以我希望看到 README1.md (master-branch)和 README2.md (mydev-branch),因为我假设 GitLab 在 运行 “merge_requests” 时执行以下操作管道:

  1. 克隆存储库
  2. 签出“mydev”分支
  3. 在 master 分支之上重新设置“mydev”分支
  4. 运行 脚本(“ls -al”命令)

但我的假设似乎是错误的,GitLab 只是检出源分支并运行脚本(GitLab 跳过第 3 步)。那么,谁能解释一下我的假设有什么问题?

我想做的是,所有开发人员都在自己的分支上工作。当他们完成他们的工作时,他们创建一个“合并请求”并且测试管道自动运行,就像“源分支已经合并到目标分支中”。

据我了解,您想使用 Pipelines for Merged Results 功能。

你应该:

  1. 拥有 Gitlab Premium
  2. Enable pipelines for merged results