想象一下这个场景:
src/
中的文件。这会触发 CI/CD 管道中长时间运行的测试作业。src/
中。我现在的想法是检查管道 1 和管道 2 之间发生更改的文件。我们启用了合并结果管道(因此 GitLab 创建一个提交,其中包含运行管道时源分支和目标分支合并在一起的结果)。
我的合并请求有这些管道:
管道ID | 管道式 | 提交 SHA | 注释 |
---|---|---|---|
#1 | 合并结果 | fca36db3 | 首次推送,更改为
|
#2 | 合并结果 | 6cb35df4 | 第二次推送,对自述文件进行了更改 |
我的 CI/CD 工作如下所示:
job:
script:
- git diff fca36db3..6cb35df4 --
输出:
$ git diff fca36db3..6cb35df4 --
fatal: bad revision 'fca36db3..6cb35df4'
显然,GitLab 创建的合并提交在这里不可用。我尝试将
GIT_STRATEGY
设置为 clone
并将 GIT_DEPTH
设置为 0
,但没有成功。是否可以使用这些提交?
可以通过创建分支来从另一个存储库获取这些提交。想法来自 我可以查看远程的引用日志(不是远程引用)吗?
job:
script:
- curl --request POST --header "PRIVATE-TOKEN: $TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/branches?branch=branch-for-fca36db3&ref=fca36db3"
- git fetch origin branch-for-fca36db3
- curl --request POST --header "PRIVATE-TOKEN: $TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/branches?branch=branch-for-6cb35df4&ref=6cb35df4"
- git fetch origin branch-for-6cb35df4
- git diff fca36db3..6cb35df4 --