実現したいこと
JenkinsのPipelineを使用して、複数プロジェクトが含まれるソリューションのビルドとテストを自動化したいです。
一応動くところまでは来ているのですが、並行実行する際のテストライブラリのパス指定等もう少し効率化したいです。
Jenkinsfileのソース
Jenkinsfile
1pipeline { 2 agent any 3 environment { 4 msbuildPath = "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" 5 nunitPath = "\"C:\Program Files (x86)\NUnit 2.6.4\bin\nunit-console.exe\"" 6 } 7 stages { 8 stage ('Build') { 9 steps { 10 bat "${msbuildPath}" + ' /t:clean;rebuild "/p:Configuration=Release;Platform=Any CPU" "Common.sln"' 11 } 12 } 13 stage ('Test') { 14 steps { 15 parallel ( 16 "Entity.20" : { 17 bat "${nunitPath}" + ' "XXX\Common\Entity.20.Tests\bin\Release\XXX.Common.Entity.20.Tests.dll" /xml=nunit-result_Common.Entity.20.xml' 18 }, 19 "Extensions.35" : { 20 bat "${nunitPath}" + ' "XXX\Common\Extensions.35.Tests\bin\Release\XXX.Common.Extensions.35.Tests.dll" /xml=nunit-result_Common.Extensions.35.xml' 21 }, 22 "Forms.40" : { 23 bat "${nunitPath}" + ' "XXX\Common\Forms.40.Tests\bin\Release\XXX.Common.Forms.40.Tests.dll" /xml=nunit-result_Common.Forms.40.xml' 24 } 25 ) 26 } 27 } 28 stage ('Report') { 29 steps { 30 nunit testResultsPattern: 'nunit-result_Common.*.xml' 31 } 32 } 33 } 34}
上記ソースのうち、stage ('Test')
内のパス指定が冗長に感じています。
nunitの実行ファイルパスはenvironmentを使用して変数化したのですが、パスの中にプロジェクト名が含まれる部分をどのように共通化すればよいか悩んでおります。
Jenkinsfile書き始めたばかりで見当違いなところもあるかもしれませんが、どうかよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/23 04:08
2018/10/23 05:24
2018/10/23 06:11