Переменные среды не найдены в Jenkins

Я хочу установить в 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?

Вы используете Amazon Linux AMI?

Talha Junaid 19.07.2018 06:22

@TalhaJunaid Нет, я использую вычислительный экземпляр GCP.

Jahongir Rahmonov 19.07.2018 06:23

Раньше я сталкивался с этой проблемой, используя Amazon Linux AMI, он сбрасывает переменные среды после перезапуска.

Talha Junaid 19.07.2018 06:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
3
2 733
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Мне это кажется вполне нормальным. 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

Jahongir Rahmonov 19.07.2018 06:51

Установка конкретных переменных среды Jenkins на системном уровне опасна, поскольку она также содержит секретные тексты. Вы можете создать отличный файл, который будет содержать его, и загрузить его в jenkinsFile. Пожалуйста, взгляните на stackoverflow.com/a/39178479/3358570. чтобы узнать, как это сделать.

Talha Junaid 19.07.2018 07:07

Ага. Вот что мне было нужно. Если вы добавите это к своему ответу, я приму его. Спасибо.

Jahongir Rahmonov 19.07.2018 07:52

Дженкинс сбрасывает переменные среды на некоторые значения по умолчанию для своей работы. Лучший способ установить их - в конфигурации jenkins. Вы можете установить глобальные переменные, локальные для проекта или локальные для узла.

Теперь я не помню, встроена ли эта функция или предоставляется каким-либо плагином.

Другие вопросы по теме