您的位置:首页 > 其它

【补充】Gitlab 部署 CI 持续集成

2016-05-12 17:34 441 查看
上一篇:《劈荆斩棘:Gitlab 部署 CI 持续集成

上一篇所配置的
.gitlab-ci.yml


stages:
- build
- test

before_script:
- echo "Restoring NuGet Packages..."
- C:\NuGet\nuget.exe restore "src\CNBlogsCI-Sample.sln"
only:
- master

build_job:
stage: build
script:
- echo "Release build..."
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "src\CNBlogsCI-Sample.sln"
except:
- tags
only:
- master

test_job:
stage: test
script:
- echo "Tests run..."
- C:\xunit.runner.console\tools\xunit.console.exe "src\ClassLibrary2\bin\debug\ClassLibrary2.dll"
- C:\xunit.runner.console\tools\xunit.console.exe "src\ClassLibrary3\bin\debug\ClassLibrary3.dll"
only:
- master

有几个问题:

before_script
要执行两次。

C:\NuGet\nuget.exe
写死路径的写法不可取。

test_job
需要上传
debug
中的
dll
文件。

对于上面的问题,完善如下:

stages:
- build

build_job:
stage: build
script:
- echo "Restoring NuGet Packages..."
- nuget restore "src\CNBlogsCI-Sample.sln"
- echo "Release build..."
- msbuild /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "src\CNBlogsCI-Sample.sln"
- echo "Tests run..."
- xunit.console "src\ClassLibrary2\bin\debug\ClassLibrary2.dll"
- xunit.console "src\ClassLibrary3\bin\debug\ClassLibrary3.dll"
except:
- tags
only:
- master

nuget
msbuild
xunit.console
命令都需要添加环境变量,为什么要去除
before_script
test_job
?因为每执行一个
job
git
都需要
Fetching changes...
,所以会清除不受
git
版本控制的文件。

还有就是,对于上面的第三个问题,因为
msbuild
Release
模式生成,而我们
test
debug dll
,所以就必须上传文件,我们把
test
中的
debug
改为
Release
就可以了。

我们可以把
nuget
msbuild
xunit.console
独立出批命令实现。

restore.cmd


echo "NuGet Sources List..."
nuget Sources List
echo "Restoring NuGet Packages..."
nuget restore "src\CNBlogsCI-Sample.sln"

build.cmd


echo "Release build..."
msbuild /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "src\CNBlogsCI-Sample.sln"

test.cmd


echo "Tests run..."
xunit.console "src\ClassLibrary2\bin\Release\ClassLibrary2.dll"
xunit.console "src\ClassLibrary3\bin\Release\ClassLibrary3.dll"

.gitlab-ci.yml


stages:
- build

build_job:
stage: build
script:
- ./restore.cmd
- ./build.cmd
- ./test.cmd
except:
- tags

script
中的
cmd
命令之前需要添加
./
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: