Я хочу установить в Jenkins несколько переменных. Я попытался поместить их в .bashrc, .bash_profile и .profile пользователя jenkins, но Дженкинс не может их найти во время сборки.
Единственный способ, который работает, - это поместить все переменные env в Jenkinsfile следующим образом:
env.INTERCOM_APP_ID = '12312'
env.INTERCOM_PERSONAL_ACCESS_TOKEN = '1231'
env.INTERCOM_IDENTITY_VERIFICATION_KEY='asadfas'
Но я не думаю, что это хороший способ сделать это.
Как правильно установить переменные env в Jenkins?
@TalhaJunaid Нет, я использую вычислительный экземпляр GCP.
Раньше я сталкивался с этой проблемой, используя Amazon Linux AMI, он сбрасывает переменные среды после перезапуска.





Мне это кажется вполне нормальным. INTERCOM_PERSONAL_ACCESS_TOKEN и INTERCOM_IDENTITY_VERIFICATION_KEY следует рассматривать как текстовые учетные данные, и вы можете использовать директиву environment для добавления переменных среды.
stages {
stage('Example') {
environment {
INTERCOM_APP_ID = '12312'
INTERCOM_PERSONAL_ACCESS_TOKEN = credentials('TokenCrednetialsID')
INTERCOM_IDENTITY_VERIFICATION_KEY = credentials('VerificationCrednetialsID')
}
steps {
echo "Hello ${env.INTERCOM_APP_ID}"
}
}
}
Если вам нужно хранить переменные среды отдельно от JenkinsFile, вы можете создать отличный файл, который содержит все из них, а затем загрузить этот файл в Jenkinsfile, используя
load "$JENKINS_HOME/.envvars/stacktest-staging.groovy"
Для получения дополнительной информации просмотрите следующие ссылки
https://jenkins.io/doc/pipeline/steps/workflow-cps/
SO: Загрузить файл с переменными окружения ...
Я не думаю, что это хорошее решение, потому что у меня много переменных env, а не только три. Я не хочу, чтобы они занимали большую часть моего файла Jenkins
Установка конкретных переменных среды Jenkins на системном уровне опасна, поскольку она также содержит секретные тексты. Вы можете создать отличный файл, который будет содержать его, и загрузить его в jenkinsFile. Пожалуйста, взгляните на stackoverflow.com/a/39178479/3358570. чтобы узнать, как это сделать.
Ага. Вот что мне было нужно. Если вы добавите это к своему ответу, я приму его. Спасибо.
Дженкинс сбрасывает переменные среды на некоторые значения по умолчанию для своей работы. Лучший способ установить их - в конфигурации jenkins. Вы можете установить глобальные переменные, локальные для проекта или локальные для узла.
Теперь я не помню, встроена ли эта функция или предоставляется каким-либо плагином.
Вы используете Amazon Linux AMI?