【发布时间】:2018-12-06 12:55:06
【问题描述】:
我有一个带有两个(powershell)阶段的詹金斯管道,每个阶段都在不同的节点/从站上运行。
我试图在第一阶段(在节点 1 上)设置一个变量,然后在下一阶段(在节点 2 上)使用它 - 但是,我找不到在它们之间传递这个变量的方法。
值得澄清的是,这个变量是在第 1 阶段动态设置的,这意味着像使用 script 或 def 或 environment 声明 env:var 这样的解决方案没有帮助(我尝试了很多组合) -每次运行管道时,值都会有所不同。
我尝试在第 1 阶段为 env var 设置一个新值,但看起来它只会影响它在运行阶段上下文中的值。
(是的,它必须在powershell和不同的节点上)
这是管道的基本思想(不起作用)
pipeline {
agent { label 'Node1' }
stages{
stage('Calculate'){
steps {
git changelog: false, credentialsId: 'user', poll: false, url: 'https://mygit.com/myrepo.git'
powershell '''
$currentVersion=[version]$(git describe --tags)
$newVersion=New-Object -TypeName System.Version($currentVersion.Major, $currentVersion.Minor, $currentVersion.Build, ($currentVersion.Revision + 1))
'''
}
}
stage('Act'){
agent { label 'Node2' }
steps {
powershell "Write-Host $env:newVersion"
}
}
}
}
有什么想法吗?
谢谢!
【问题讨论】:
标签: powershell jenkins groovy environment-variables jenkins-pipeline