我具有构造用于Gitlab-CI一个非常基本的一体化,但它在当它具有克隆代码开头几乎失败。
我整合是这样的:
image: node:latest
stages:
- build
- test
cache:
paths:
- node_modules/
- dist/
build-prod:
stage: build
script:
- npm install
- npm run build-prod
artifacts:
paths:
- node_modules/
- dist/
test_with_karma:
stage: test
script: ng test
和我得到的错误是这样的:
Running with gitlab-runner 11.7.0 (8bb608ff)
on fakehost 2eaf11ea
Using Docker executor with image node:latest ...
Pulling docker image node:latest ...
Using docker image sha256:8c67bfd7b95bdc535edc4a4144f5392b0f73efd6385fbcb47747d028d7059359 for node:latest ...
Running on runner-2eaf11ea-project-56-concurrent-0 via fakehost...
Cloning repository...
Cloning into '/builds/redacted/frontend'...
remote: You are not allowed to download code from this project.
fatal: unable to access 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@working-domain.com/redacted/frontend.git/': The requested URL returned error: 403
/bin/bash: line 65: cd: /builds/redacted/frontend: No such file or directory
ERROR: Job failed: exit code 1
这是什么问题?
答案 0 :(得分:0)
检查是否被gitlab-org/gitlab-ce
issue 39469覆盖
是的-它对我有用。这个问题似乎有多种解决方案。
为我工作的人是#44855
总结。在Gitlab上成为管理员并不意味着您具有在Gitlab中执行任何操作的“权限”。
“无法访问”权限适用于登录到Gitlab并运行作业的人。
要解决此问题-负责这项工作的人员/帐户必须是项目的成员(主管)。这将适用于私人项目。
即使看起来可以解决该问题,也不必将私有项目设为“公开”。 GITLAB建议您必须具有https才能使该项目正常运行,然后才能使用http。解决方案-即使您是管理员,也要将帐户添加到项目中
并且:
康拉德正确地描述了它。
您需要对项目具有运行管道的权限,但是,作为管理员,您可以启动任何管道。
我已经知道,尽管从理论上说,无权拥有项目权限,但在Gitlab中作为Admin的用户可以从命令行推送其提交-并且管道失败了。
此矛盾需要得到解决,或者管理员用户不应该能够推送/启动管道,对其没有任何权限,或者应该以合法的方式授予他所有项目的所有权限。我更喜欢第一个,因为它将gitlab管理与项目权限分开。有时我更喜欢没有完全的权限,就像在Linux下以非root用户身份工作一样。