Я предполагаю, что вы конфигурируете задание Jenkins с различными шагами сборки между заданными учетными данными и потреблением учетных данных.
Jenkins не разделяет переменную среды между этапами сборки.
Если вы используете задание Jenkins в старом стиле, вам нужно будет использовать какой-нибудь плагин, например envinject
, или использовать файл для обмена переменными между шагами. Как показано ниже (просто в качестве примера).
Шаг 1
echo "export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" > credential
echo "export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" >> credential
echo "export AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}" >> credential
Шаг 2
source credential && ./your_command_here
Но если вы подаете в суд на Jenkins Pipeline, вы можете использовать env
. Как ниже (как в примере).
pipeline {
parameters {
string(name: 'AWS_ACCESS_KEY_ID', defaultValue: '')
}
stage("set credential") {
steps {
tmp_AWS_ACCESS_KEY_ID = sh (script: 'your shell script here', returnStdout: true).trim()
env.AWS_ACCESS_KEY_ID = tmp_AWS_ACCESS_KEY_ID
}
}
stage("consume credential") {
steps {
echo "${env.AWS_ACCESS_KEY_ID}"
}
}
}