linux - 在 Jenkins 中找不到环境变量

标签 linux ubuntu jenkins environment-variables

我想在 Jenkins 中设置很多变量。我试过将它们放在 jenkins 用户的 .bashrc.bash_profile.profile 中,但 Jenkins 找不到他们在构建发生时。

唯一可行的方法是将所有环境变量放入 Jenkinsfile 中,如下所示:

env.INTERCOM_APP_ID = '12312'
env.INTERCOM_PERSONAL_ACCESS_TOKEN = '1231'
env.INTERCOM_IDENTITY_VERIFICATION_KEY='asadfas'

但我认为这不是一个好方法。

在 Jenkins 中设置 env 变量的正确方法是什么?

最佳答案

对我来说,这似乎很正常。 INTERCOM_PERSONAL_ACCESS_TOKENINTERCOM_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 分开,您可以创建一个包含所有这些的 groovy 文件,然后使用

将该文件加载到 Jenkinsfile
load "$JENKINS_HOME/.envvars/stacktest-staging.groovy"

有关更多信息,请查看以下链接

https://jenkins.io/doc/pipeline/steps/workflow-cps/

SO: Load file with environment variables ...

关于linux - 在 Jenkins 中找不到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51414302/

相关文章:

MySQL 无法从 Linux 上安装的公共(public) IP 访问

amazon-web-services - 为现有/正在运行的 Amazon EC2 实例分配弹性 IP 地址

jenkins - 动态更新 Jenkins 管道参数

python-3.x - 使用 Sagemaker 生命周期配置文件安装多个包

exception - SonarRunner 失败 - 分析已在运行

java - 如何在 Jenkins 中运行 FEST Swing 测试?

c++ - 在我的笔记本电脑上检查 C++ 版本

linux - 文本文件中特定行的转换

c++ - 为什么 Qt 资源在 Linux 而不是 Windows 中加载?

linux - 在 Linux shell 脚本中检索最近修改过的子目录?