【发布时间】:2017-02-24 13:58:54
【问题描述】:
我正在尝试为我的公司构建一个 Jenkins 管道,以从 Gitlab 中提取,执行 MSBuild,将工件发布到目录,然后压缩所有工件以推送到存储库或文件共享。该应用程序是一个网络应用程序。
当我尝试从 AntBuilder 实现 zip 功能时,出现了我的问题。无论我为 basedir 指定什么,作业都会失败,说找不到该目录。我的代码如下。
#!groovy
node('dotnet') { //select any node with a doctnet label
stage('Checkout') { //checkout the code from source
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Windows_Gtt', submoduleCfg: [], userRemoteConfigs: [[credentialsId: '99999999-9999-9999-99999', url: 'git@repos.somecompany.com:api/sharedservices.git']]])
}
stage('Build') { //build steps go here
bat 'nuget restore LandingPageSvc.sln' //restore nuget sources
bat "\"${tool 'MSBUILD46_64_Pipeline'}\" LandingPageSvc.sln /m /p:VisualStudioVersion=14.0" //msbuild
}
// stage('NUnit Tests') { //Unit testing steps go here
// bat '"C:\\Program Files (x86)\\NUnit.org\\nunit-console\\nunit3-console.exe" ./LandingPageSvc.Test/bin/Debug/LandingPageSvc.Tests.dll --result nunit-result.xml'
// }
stage('Packaging') {
bat "\"${tool 'MSBUILD46_64_Pipeline'}\" LandingPageSvc\\LandingPageSvc.csproj /m /p:VisualStudioVersion=14.0;Configuration=Debug;PublishDestination=..\\Publish\\Dev /t:PublishToFileSystem"
def ant = new AntBuilder()
ant.zip(destfile: "test.zip", basedir: "./Publish/Dev")
}
stage('Publish') {
// build nuget package
//push nuget pcakage to artifactory
}
}
所以,其他一切都可以解决到 dotnet 构建代理上的工作区,我什至尝试在路径中使用 ${WORKSPACE},但它仍然会抱怨。
不确定为什么或在什么环境下运行此特定功能,但它似乎不在 dotnet 构建代理或项目工作区中。
感谢任何建议。
【问题讨论】:
标签: jenkins groovy msbuild jenkins-pipeline