首页 > 解决方案 > Jenkins Powershell 写入控制台

问题描述

我有一个调用 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"')

我觉得我错过了一些非常基本的东西。我究竟做错了什么 ?

标签: powershelljenkinsjenkins-pipeline

解决方案


您需要将管道执行包装到script部分中,因为您正在尝试在声明性管道中使用脚本语法:

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

推荐阅读