Я определил глобальную переменную в конвейере Дженкинса
def BUILDNRO = '0'
pipeline { ...
Затем я манипулирую переменной с помощью сценария оболочки, чтобы включить параллельный запуск сборок, используя номер сборки задания в качестве идентификатора, чтобы мы не смешивали различные группы докеров.
stage('Handle BUILD_NUMBER') {
steps {
script {
BUILDNRO = sh( script: '''#!/bin/bash
Build=`echo ${BUILD_NUMBER} | grep -o '..$'`
# Check if BUILD first character is 0
if [[ $Build:0:1 == "0" ]]; then
# replace BUILD first character from 0 to 5
Build=`echo $Build | sed s/./5/1`
fi
echo $Build
''',returnStdout: true).trim()
}
}
}
Я получаю значение из предыдущего этапа и пытаюсь получить глобальную переменную на следующем этапе
stage('DOCKER: Init docker swarm') {
steps {
echo "BUILDNRO is: ${BUILDNRO}" --> Value is here.
sh '''#!/bin/bash
echo Buildnro is: ${BUILDNRO} --> This is empty.
...
}
}
Это приведет к тому, что глобальная переменная будет пустой.Почему?на предыдущем этапе в нем было значение.
РЕДАКТИРОВАТЬ 1. Модифицированные кодовые блоки для отображения текущего состояния.