ali*_*ani 5 continuous-integration docker gitlab-ci gitlab-ci-runner
我设置了新的 gitlab docker ,然后设置了一个基于 microsoft/dotnet:latest 的带有 docer 执行器的 runner docker,然后我向 gitlab 添加了一个简单的项目,只是一个 dotnet core hello world 然后我创建了一个 ci 文件,如下所示:
image: microsoft/dotnet:latest
stages:
- build
variables:
project: "ConsoleApp"
before_script:
- "dotnet restore"
build:
stage: build
variables:
build_path: "$ConsoleApp"
script:
- "cd $build_path"
- "dotnet build"
Run Code Online (Sandbox Code Playgroud)
然后在管道中我得到这个输出:
Preparing environment
Running on runner-vtysysr-project-2-concurrent-0 via e189cc9d1c60...
Getting source from Git repository
00:07
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/root/gitlabcitest/.git/
fatal: couldn't find remote ref refs/pipelines/18
Uploading artifacts for failed job
00:06
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
我搜索了错误,但所有答案都是关于有分支的项目,但我没有任何分支,只是一个简单的 hello world 项目。
OP ali-kamrani在评论中补充道:
我的问题是
config在 runner docker 中的 ssh 中:将 ssh 密钥添加到 docker后,问题得到解决。
其他途径(针对其他用户)如果与问题 36123类似gitlab-org/gitlab
我们过去
git push --mirror经常从不同的存储库镜像一些项目。
事实证明,它还删除了未知分支,即pipelines/XXXX和merge/XXXX。我们现在显式地推送和删除每个分支并忽略所有
pipelines/XXXX分支merge/XXXX。
后来就没有再出现这个错误了。
我知道您没有很多分支机构,但这里的问题不在于您当地的分支机构。
它通过本地启动的推送操作来修剪本地不存在的远程分支。
基本上,管道取决于管道特定的引用
refs/pipelines/*,并且在管道运行时它必须存在。
因此,如果git push --mirror删除这些引用,您可能会遇到作业失败的情况。
同一个问题说明了类似的场景:
在我们的设置中,我们使用系统挂钩将 GitLab 存储库镜像到更靠近 GitLab Runner 实例所在位置的另一个位置。
这已经运行了很长一段时间了。然而,现在 GitLab 依赖于
refs/pipelines/<pipeline ID>现有的 ref,我们所有的运行器都会失败。问题是
refs/pipelines/<pipeline ID>引用是在幕后创建的,并且没有调用系统挂钩(因此我们不知道需要镜像的新引用)。
内置的Repository Mirroring功能不太适合我们,因为它必须为每个存储库进行配置;通过 System Hooks,我们可以自动镜像所有存储库。
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |