【发布时间】:2018-08-22 10:34:24
【问题描述】:
我有一个包含多个 .NET 项目的解决方案。我使用非自托管的 GitLab 进行版本控制,并且也想开始使用他们的 CI 工具。我已将以下 .gitlab-ci.yml 文件添加到我的根目录:
stages:
- build
- test
build_job:
stage: build
script:
- 'echo building...'
- 'msbuild.exe Bizio.sln'
except:
- tags
test_job:
stage: test
script:
- 'echo: testing...'
- 'msbuild.exe Bizio.sln'
- 'dir /s /b *.Tests.dll | findstr /r Tests\\bin\\ > tests_list.txt'
- 'for /f %%f in (tests_list.txt) do mstest.exe /testcontainer: "%%f"'
except:
- tags
build 阶段总是失败,因为它不知道msbuild 是什么。确切的错误是:
/bin/bash:第 61 行:msbuild.exe:找不到命令
经过一番调查,我发现我正在使用共享跑步者。以下是作业运行的全部输出:
Running with gitlab-runner 10.6.0-rc1 (0a9d5de9)
on docker-auto-scale 72989761
Using Docker executor with image ruby:2.5 ...
Pulling docker image ruby:2.5 ...
Using docker image sha256:bae0455cb2b9010f134a2da3a1fba9d217506beec2d41950d151e12a3112c418 for ruby:2.5 ...
Running on runner-72989761-project-1239128-concurrent-0 via runner-72989761-srm-1520985217-1a689f37...
Cloning repository...
Cloning into '/builds/hyjynx-studios/bizio'...
Checking out bc8085a4 as master...
Skipping Git submodules setup
$ echo building...
building...
$ C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Bizio.sln
/bin/bash: line 61: msbuild.exe: command not found
ERROR: Job failed: exit code 1
看起来我的共享运行器正在使用 Ruby 的 Docker 映像,这似乎是错误的。我不知道如何更改或选择可用于 .NET 的其他选项。经过一些进一步的调查,我开始担心我必须跳过很多圈才能得到我想要的东西,比如使用 Azure VM 来托管可以构建 .NET 应用程序的 GitLab Runner。
我需要做什么才能使用 GitLab 的 CI 管道通过非自托管 GitLab 实例构建我的 .NET 解决方案?
【问题讨论】:
标签: .net msbuild continuous-integration gitlab gitlab-ci-runner