我遇到以下情况:我有两个GitLab存储库master
和slave
,两者都需要合并才能运行测试。
目前,我采用以下方法:为master
创建一个CI项目,将slave
作为构建步骤,然后运行测试。
现在我想在有人推送slave
的时候触发构建。这样做的恰当方式似乎是通过webhooks,所以我将以下webhook添加到slave
:
https://ci.foo.com/projects/1/build?token=19c72c17f0e69&ref=master
现在,当slave
触发构建时,我收到以下构建错误:
cd /home/gitlab_ci_runner/gitlab-ci-runner/tmp/builds/project-1 && git reset --hard && git clean -fdx && git remote set-url origin https://gitlab-ci-token:19c72c17f0e69@git.foo.com/slave.git && git fetch origin
cd /home/gitlab_ci_runner/gitlab-ci-runner/tmp/builds/project-1 && git reset --hard && git checkout cc807f3023451165cd73a258b4e2b01edbc954a4
HEAD is now at b38bd72 fixed bar
fatal: reference is not a tree: cc807f3023451165cd73a258b4e2b01edbc954a4
问题是cc807f3023451165cd73a258b4e2b01edbc954a4
是slave
的最后一次提交,而不是master
的提交,因此检出失败。
有没有人知道如何解决这个问题,或者知道除了在这种情况下使用webhooks之外的其他解决方案?