shell - Jenkins Pipeline Access 阶段步骤变量在 powershell 执行中

标签 shell powershell jenkins jenkins-pipeline

我想访问在执行 Power Shell 的步骤中定义的普通变量。 我们可以使用 $env 访问环境变量,但是如何访问普通步骤变量?

stages {
        stage ('sometask') {
                steps{
                     script {
                        def someString = 'Hi'
                        withCredentials(...) {
                        def out = powershell(returnStdout: true, script: 
                               '''
                               // Access someString 
                         ''')
                         println out
                       }
                }
         }
}

最佳答案

这可能不是最优雅的方式,但我是这样做的: (我将使用您的相同示例)

stages {
        stage ('sometask') {
                steps{
                     script {
                        def someString = 'Hi'
                        withCredentials(...) {
                        def out = powershell(returnStdout: true, script: 
                               '''
                        PowerShellCommands.... 
                        Write-Host ''' + someString + '''
                        someMorePowerShellCommands
                         ''')
                         println out
                       }
                }

所以基本上我所做的是连接

的值

someString

在脚本中间,例如,如果您需要传递更多变量,则需要遵循相同的逻辑:

''' some script code ''' + variableName + 
''' some more script code''' + anotherVariableName + 
''' evenMoreScriptCode '''

在我的例子中,我使用的是配置参数而不是

variableName

我正在使用

config.webURL

例如。

希望这对您有所帮助。

CN

关于shell - Jenkins Pipeline Access 阶段步骤变量在 powershell 执行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464945/

相关文章:

docker - 如何使后续的 check out scm阶段在Jenkins管道中使用本地 repo ?

linux - 管道输出到命令和终端

shell - 如何修复编辑已取消,shell 中未进行任何更改

linux - 自动应答 bash 脚本提示

linux - 使用 unix 查找模式并替换文件内的模式

powershell - 在数组创建期间调用函数以导出包含 Zip 文件的文件夹的内容

logging - 在 Jenkins 作业中使用时,Groovy 记录器不工作

bash - 递归复制到相对目标路径

powershell - 获取磁盘 IO 性能计数器

powershell - 读取注册表值并转换为日期