我有一个用于合并请求的 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 都有一个特定的分支,对吗?
答案 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