Дженкинс Пауэршелл написать в консоль - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть работа Дженкинса, которая вызывает файл powershell.Когда я использую его из проекта вольного стиля, он показывает выполнение powershell в выводе консоли.Переключив его на конвейерную работу, я больше не вижу вывод.

В настоящее время мой конвейер выглядит следующим образом:

 pipeline 
 {
    stages
    {
        stage ('Deploy To Dev')
         {
            steps
             {
                powershell '"%WORKSPACE%\\SpearsLoad\\Scripts\\CIDeployToDev.Ps1"'
             }
        }
    }
}

, но я не получаю запись шагов PowerShell.

Следуя документации, я попытался изменить стадию на:

pipeline 
{
    stages
    {
        stage ('Deploy To Dev')
            {
            steps
            {
                node('Deploy the SSIS load')
                {
                    //Deploy the SSIS load
                    def msg = powershell(returnStdout: true, script: '"%WORKSPACE%\\SpearsLoad\\Scripts\\CIDeployToDev.Ps1"')
                    println msg
                }
            }
        }
    }
}

но это дает:

Ожидаемый шаг @ строка 123, столбец 6. def msg = powershell (returnStdout: true, script: '"% WORKSPACE% \ SpearsLoad \ Scripts\ CIDeployToDev.Ps1 "')

Я чувствую, что упускаю что-то совершенно фундаментальное.Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

Для тех, кто приходит сюда в поисках ответов, я должен отметить, что на самом деле было три отдельных проблемы с кодом:

  1. Отсутствие секции скрипта согласно принятому ответу.
  2. PowerShell на самом деле не работал из-за неправильного его вызова
  3. PowerShell не работал из-за пробелов в переменной% WORKSPACE%

, в конце концов я пошелс:

script {
    def msg = powershell(returnStdout: true, script: " & './SpearsLoad\\Scripts\\CIDeployToDev.Ps1'")
    println msg
        }  

, который на самом деле работает!

0 голосов
/ 15 февраля 2019

Я использую Write-Host "Мое сообщение" в powershell.Это будет отображаться в журнале.

0 голосов
/ 01 февраля 2019

Вам нужно заключить исполнение конвейера в раздел script, потому что вы пытаетесь использовать сценарий синтаксиса в декларативном конвейере :

script {
    //Deploy the SSIS load
    def msg = powershell(returnStdout: true, script: '"%WORKSPACE%\\SpearsLoad\\Scripts\\CIDeployToDev.Ps1"')
    println msg
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...