我目前正在使用gitlab.com(非本地安装)和他们的多用户进行CI集成 . 这对我的一个项目非常有效,但对另一个项目失败了 .
我在MSBuild版本14.0.23107.0上使用2012R2作为主机 . 我知道下面的错误显示403这是一个拒绝访问的消息 . 我的问题是找到要更改的权限设置 .
错误信息:
使用gitlab-ci-multi-runner 1.5.3运行(fb49c47)使用Shell Actuator ...在WIN-E0ORPCQUFHS上运行...获取更改... HEAD现在位于6a70d96更新运行程序文件远程:访问被拒绝致命:无法访问'https:// gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlab.com/##REDACTED##/ADInactiveObjectCleanup.git/':请求的URL返回错误:403将60ea1410签出为 生产环境 ...致命:参考是不是树:60ea1410dd7586f6ed9535d058f07c5bea2ba9c7错误:构建失败:退出状态128
gitlab-ci.yml文件:
variables:
Solution: ADInactiveObjectCleanup.sln
before_script:
#- "echo off"
#- 'call "%VS120COMNTOOLS%\vsvars32.bat"'
## output environment variables (usefull for debugging, propably not what you want to do if your ci server is public)
#- echo.
#- set
#- echo.
stages:
- build
#- test
#- deploy
build:
stage: build
script:
- echo building...
- '"%ProgramFiles(x86)%\MSBuild\14.0\Bin\msbuild.exe" "%Solution%" /p:Configuration=Release'
except:
#- tags
2 回答
要解决此问题,我必须将自己添加为项目成员 . 这是一个私人回购 . 我不确定这是否会导致跑步者因不同的权限设置而失败,但这很有可能 .
这个帮助article在gitlab上概述了这个问题 .
从项目页面单击设置齿轮,然后单击成员 . 将自己(或用户生成构建)添加为项目的成员 . 我使用"Master"角色,但基于this document,你可以使用"Reporter"角色作为最低要求 . 记者角色是仍然可以访问"Pull project code."的最小权限 . 这删除了我的403错误并允许我继续 .
这看起来像你需要添加一个
cd
命令来打印你的before_script当前目录 . 然后去修复权限以访问该文件夹的父级 . 如果您将gitlab runner安装到c:\glrunner
,则可能需要修复c:\glrunner\builds
权限 .第二个问题是你可能需要通过删除builds文件夹来强制新的git clone .
您可能希望将gitlab runner服务的登录凭据更改为
gitlabuser
,这应该是非管理员帐户,其默认值可能比您的gitlab运行器正在使用的LOCAL SYSTEM帐户少 .如果您想知道谁登录,也可以将
set
添加到您的before_script中,然后您将获得环境变量转储 . 从中您可以看到登录的帐户,USERPROFILE的位置和其他内容 .