Установка переменной конвейера jenkins с использованием powershell приводит к возврату каретки - PullRequest
1 голос
/ 11 июня 2019

Я использую файл Jenkins Pipeline для автономного конвейерного задания, я пытаюсь найти последнюю папку, созданную в каталоге, и назначить ее переменной.

Это работает отлично, за исключением того факта, чтомошеннический возврат каретки на выходе.Я не могу использовать Write-Host -NoNewLine, так как это не сделает его выходным параметром.

Я попытался заменить любые возвраты каретки в имени файла, я перебрал символы ascii - это просто кажетсячто по какой-то странной причине у Powershell всегда есть этот мошеннический «возврат каретки», которого нет при использовании Write-Output.

pipeline {
  agent {
    label 'orchestration'
  }
  environment {
    CLIENT_NAME = 'Test Client'
    LATEST_ORCHESTRATION_VERSION = powershell(returnStdout: true, script: '''
        Write-Output (gci D:\\Orchestration | ? { $_.PSIsContainer } | sort CreationTime)[-1].Name
    ''')
  }
  stages {
      stage('Load') {
      steps {
         bat('dotnet run "D:\Orchestration\%LATEST_ORCHESTRATION_VERSION%" -d %WORKSPACE% -c %CLIENT_NAME%')
      }
    }
  }
}

Запуск этого в Powershell работает нормально, но работает, если вы делаете Write-Output 'foo' вПохоже, что Powershell ISE копирует возврат каретки (если я запускаю приведенный выше скрипт powershell исключительно в powershell, то, насколько я вижу, он возвращается нормально)

Когда я запускаю конвейер, переменная окружения отлично проходит, но потому чтокажется, что возврат каретки существует, и в консоли jenkins появляется следующая ошибка:

D:\workspace\Test Client>dotnet run "D:\Orchestration\1.0.0.28

Couldn't find a project to run. Ensure a project exists in D:\workspace\Test Client, or pass the path to the project using --project.```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...