У меня есть конвейер jenkins с двумя этапами (powershell), каждый из которых работает на своем узле / подчиненном устройстве.
Я пытаюсь установить переменную на первом этапе (на узле 1) и впоследствии использовать ее на следующем этапе (на узле 2) - однако я не смог найти способ передать эту переменную между ними.
Стоит уточнить, что эта переменная динамически устанавливается на этапе 1, а это означает, что такие решения, как объявление env:var
с использованием script
или def
или environment
, не помогли (я пробовал много комбинаций) - значение может меняться каждый раз, когда я запускаю конвейер.
Я попытался установить новое значение для env var
на этапе 1, но похоже, что оно влияет только на его значение в контексте рабочей стадии.
(да, он должен быть в 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"
}
}
}
}
Есть идеи?
Спасибо!