代码之家  ›  专栏  ›  技术社区  ›  Jahongir Rahmonov

在Jenkins中找不到环境变量

  •  2
  • Jahongir Rahmonov  · 技术社区  · 6 年前

    我想在詹金斯身上设置一些变量我试过把它们放进去 .bashrc 我是说, .bash_profile .profile jenkins 用户,但詹金斯找不到他们时,正在建设。

    唯一可行的方法是将所有env变量放在 Jenkinsfile 这样地:

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

    但我不认为这是个好办法。

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

    2 回复  |  直到 6 年前
        1
  •  2
  •   Henk Langeveld    6 年前

    对我来说,这似乎很正常。 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 您可以创建一个包含所有这些内容的groovy文件,然后将该文件加载到 Jenkinsfile 使用

    load "$JENKINS_HOME/.envvars/stacktest-staging.groovy"
    

    有关详细信息,请查看以下链接

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

    SO: Load file with environment variables ...

        2
  •  0
  •   Łukasz Jakubek    6 年前

    詹金斯将环境变量重置为其工作的某些默认值。最好的设置方法是在詹金斯配置。可以为项目设置全局变量、本地变量或为节点设置本地变量。

    现在我不记得这个功能是内置的还是由插件提供的。