Mat*_*art 2 continuous-integration nuget gitlab gitlab-ci gitlab-ci-runner
我正在尝试使用 gitlab CI 构建和测试 .NET 项目。
我已经下载并安装了最新版本的 GitLab runner,并成功地将它注册到了我们的 gitlab 实例。我创建了以下.gitlab-ci.yaml文件:
variables:
Solution: Performance-Validation-Tool.sln
stages:
- build
- test
# - deploy
build:
stage: build
script:
- echo "Restoring NuGet packages..."
- 'C:/nuget/NuGet.exe restore'
- echo building...
- 'msbuild.exe "%Solution%"'
except:
- tags
test:
stage: test
script:
- echo testing...
- 'msbuild.exe "%Solution%"'
- dir /s /b *.Tests.dll | findstr /r Tests\\*\\bin\\ > testcontainers.txt
- 'for /f %%f in (testcontainers.txt) do mstest.exe /testcontainer:"%%f"'
except:
- tags
Run Code Online (Sandbox Code Playgroud)
重要的部分是构建操作。
如果我从 Gitlab 本身运行构建,我会收到所有 nugget 包的以下错误:
WARNING: Unable to find version '3.5.0' of package 'NUnit.Console'.
C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache: Package 'NUnit.Console.3.5.0' is not found on source 'C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache'.
https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
An error occurred while sending the request.
The remote name could not be resolved: 'api.nuget.org'
Run Code Online (Sandbox Code Playgroud)
但是,如果我在本地运行以下命令:
C:\GitlabRunner\gitlab-ci-multi-runner-windows-amd64.exe exec shell build
Run Code Online (Sandbox Code Playgroud)
一切正常...
我为 gitlab runner 和 nugget.exe 创建了防火墙例外(我下载并安装了最新版本的 nugget.exe)
gitlab runner 服务以我用来运行手动 exec 命令的相同帐户登录。
我对 gitlab 触发的构建和手动 exec 命令使用了相同的 nugget.exe。
我们在公司代理后面,没有设置 HTTP_PROXY 环境变量。代理在“互联网选项”中配置。我确实尝试为 nugget.exe 定义 HTTP_PROXY 设置,但后来在阅读 nugget.exe 默认使用系统代理后将其删除。
在此先感谢您的帮助!
| 归档时间: |
|
| 查看次数: |
4460 次 |
| 最近记录: |