配置 Gitlab 以获取 MR 分支而不是提交哈希

时间:2021-04-09 16:24:05

标签: gitlab-ci

我有一个用于合并请求的 CI 配置,如下所示:

# build artifacts and run tests
build-and-test:
  stage: build
  script:
    - mvn $MAVEN_CLI_OPTS clean verify
  only:
    - master
    - merge_requests

当我推送到 MR 时,gitlab 会检查特定的提交,而不是 MR 中使用的分支。这使我的 gitver 配置忽略了分支名称。

我可以让 Gitlab 获取分支而不是提交吗?每个 MR 都有一个特定的分支,对吗?

1 个答案:

答案 0 :(得分:0)

MR 实际上是在一个分离的提交中构建的,它似乎是 gitlab 的一个实现细节。也许它是为了防止意外推动?

如果您的机器或构建容器上有 git,您可以手动检出 $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME 变量或在您的 gitver 中以某种方式使用它。

$CI_COMMIT_REF_NAME 在我的测试中似乎也设置为源分支名称,如果 master 和 MR 分支都有一个作业,它可能会更方便一些。

编辑:仅用于合并检查的示例管道:

build-and-test:
  stage: build
  script:
    - git checkout $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
    - mvn $MAVEN_CLI_OPTS clean verify
  only:
    - merge_requests