Плагин EnvInject читает файл свойств каждый раз, когда мне нужно экспортировать переменную.
Так я реализовал необходимую функциональность с помощью Groovy PostBuild плагин на первом этапе после сборки, который считывает все необходимые переменные из файла свойств и экспортирует их в течение следующих шагов после сборки:
/*
Inject environment variables using Groovy because EnvInject plugin is not user-friendly
*/
import hudson.model.*
def console = manager.listener.logger.&println
// read the props file
def props = new Properties()
new File("${manager.envVars['WORKSPACE']}/postbuild.props").withInputStream {
stream -> props.load(stream)
}
props.each{
key, value -> console("${key}:${value}")
def pa = new ParametersAction([
new StringParameterValue(key, value)
])
manager.build.addAction(pa)
}
А на каждый шаг сборки, который необходимо передать переменные шагов после сборки я делаю что-то вроде:
echo "hipchat_message=Server build succeded: <a href='https://$SERVER_NAME/'>$SERVER_NAME</a> (<a href='$BUILD_URL'>Job</a>)" > "$WORKSPACE/postbuild.props"
Я не пробовал это, но я столкнулся с открытой проблемой с прохождением аргументов, поэтому я предполагаю, что это не сработает. См .: https://issues.jenkins-ci.org/browse/JENKINS-19873 – haridsv