Я новичок в Jenkins и в конвейере, я создал Web API и использую декларативный конвейер для сборки и развертывания проекта на моем локальном хосте. Я сталкиваюсь с проблемой при выполнении команды Do tnet Run через мой декларативный конвейер, она работает нормально, но не завершает этап (продолжает работать), и я вынужден вручную прервать ее. Причина в том, что do tnet run использует веб-сервер Kestrel для запуска основного приложения. net.
Ниже приведен мой сценарий:
def BatchFile = "C:\\WorkSpace\\Thoughts\\DotnetEXEC.bat"
pipeline{
agent any
environment {
dotnet ='C:\\Program Files (x86)\\dotnet\\'
sln = 'C:\\WorkSpace\\Thoughts\\Thoughts\\Thoughts.sln'
nugetexe = 'C:\\ProgramData\\chocolatey\\lib\\NuGet.CommandLine\\tools\\NuGet.exe'
packagedir='C:\\WorkSpace\\Thoughts\\packages'
trxFilePath= 'C:\\WorkSpace\\Thoughts\\Thoughts\\ThoughtsUnitTest\\TestResults'
mainDirectory='C:\\WorkSpace\\Thoughts'
testResultFileName='UnitTestRestult.trx'
publishDirectory='C:\\WorkSpace\\Thoughts\\Publish'
webAPIProjectFile='C:\\WorkSpace\\Thoughts\\Thoughts\\ThoughtsService\\ThoughtsService.csproj'
webAPIBuild='\\Thoughts\\Libraries\\ThoughtsService\\netcoreapp2.1'
}
triggers {
pollSCM 'H/15 * * * *'
}
stages {
stage('Checkout') {
steps {
git credentialsId: 'be9c1836-afb8-4e2a-9f8a-96888c92c77d', url: 'https://github.com/gargankurg/Thoughts', branch: 'develop'
}
}
stage('Restore packages'){
steps{
bat "%nugetexe% restore %sln%"
}
}
stage('Clean'){
steps{
bat "dotnet clean %sln%"
}
}
stage('Build'){
steps{
bat "dotnet build %sln% --configuration Release"
}
}
stage('Test: Unit Test'){
steps {
bat "dotnet test %sln% -l:trx;LogFileName=%testResultFileName%"
bat "copy %trxFilePath%\\%testResultFileName% %mainDirectory%"
}
}
stage('Publish'){
steps{
bat "dotnet publish %webAPIProjectFile% --framework netcoreapp2.1 --output %publishDirectory% --self-contained true --runtime osx.10.11-x64 "
}
}
stage('Run'){
steps{
bat "%mainDirectory%\\DotnetEXEC.bat"
}
}
}
}
Вот содержимое моего файла .bat
cd C: \ WorkSpace \ micets \ micets \ micetsService do tnet run --verbosity N