Jenkins 环境变量可以全局设置,如下面的示例或每个阶段。您可能会期望,每个阶段设置环境变量意味着它们将仅适用于定义它们的阶段。 Jenkinsfile (Declarative Pipeline) ``` pipeline { agent any environment { DISABLE_AUTH = 'true' DB_ENGINE = 'sqlite' } stages { stage('Build') { steps { sh 'printenv' } } } } ``` Toggle Scripted Pipeline (Advanced) Jenkinsfile (Scripted Pipeline) ``` node { withEnv(['DISABLE_AUTH=true', 'DB_ENGINE=sqlite']) { stage('Build') { sh 'printenv' } } } ``` 这种从内部定义环境变量的方法Jenkinsfile 对于指示脚本(例如a)可以非常有用Makefile,以不同的方式配置构建或测试,以在Jenkins内部运行它们。 环境变量的另一个常见用途是在构建或测试脚本中设置或覆盖“虚拟”凭据。因为(显而易见)将凭据直接放入一个不好的主意Jenkinsfile,Jenkins Pipeline允许用户快速而安全地访问预定义的凭据,而Jenkinsfile无需知道其价值。 环境证书 如果您的Jenkins环境配置了凭据,例如构建秘密或API令牌,那么可以将它们轻松插入环境变量中,以便在Pipeline中使用。下面的代码片段用于“秘密文本”类型的凭据。 ``` environment { AWS_ACCESS_KEY_ID = credentials('AWS_ACCESS_KEY_ID') AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY') } ``` 正如第一个例子,这些变量将在全局或每个阶段可用,具体取决于environment指令 在哪里Jenkinsfile。 第二种最常见的凭证类型是“用户名和密码”,仍然可以在environment指令中使用,但会导致稍微不同的变量被设置。 ``` environment { SAUCE_ACCESS = credentials('sauce-lab-dev') } ``` 这将实际设置3个环境变量: ``` SAUCE_ACCESS 含 <username>:<password> SAUCE_ACCESS_USR 包含用户名 SAUCE_ACCESS_PSW 包含密码 ``` credentials仅适用于声明性Pipeline。对于使用脚本Pipeline的用户,请参阅该withCredentials步骤的文档。 到目前为止,我们关心的是创建一个配置并执行我们期望的方式的Pipeline。在接下来的两个部分中,我们将介绍连续交付的另一个重要方面:表面反馈和信息。