我想要使用gitlab CI構建和測試.NET項目。從gitlab啓動時GitLab Runner無法恢復nuget包,但可以在本地啓動時
我已經下載並安裝了最新版本的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
的重要組成部分,是構建行動。
如果我從Gitlab本身我收到以下錯誤對於所有的金塊包的運行構建:
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'
但是,如果我運行下面的命令本地:
C:\GitlabRunner\gitlab-ci-multi-runner-windows-amd64.exe exec shell build
一切完美...
我爲gitlab runner和nugget.exe創建了防火牆例外(我下載並安裝了最新版本的nugget.exe)
gitlab亞軍服務以我用來運行手動exec命令的相同帳戶登錄。
我對gitlab觸發版本和手動exec命令都使用了相同的nugget.exe。
我們背後是一個公司代理,沒有設置HTTP_PROXY環境變量。該代理在「Internet選項」中進行配置。我曾嘗試爲nugget.exe定義HTTP_PROXY設置,但稍後在閱讀nugget.exe默認使用系統代理後將其刪除。
在此先感謝您的幫助!