您的位置:首页 > 其它

jenkins学习笔记-3-使用环境变量

2017-08-18 10:23 288 查看


使用环境变量

环境变量可以设置成全局的,就像下面的例子。环境变量也可以设置在每个阶段stage中。正如你料想,每个阶段设置环境变量意味着这些环境变量只在定义了变量的阶段中有效。

 

 

Jenkinsfile(Declarative Pipeline)

pipeline{

        
agentany

   

environment{

   
DISABLE_AUTH=’TRUE’

   
DB_ENGINE=’sqlite’

}

 

stages{

   
stage(‘Build’){

   
steps{

   
sh ‘printenv’

}

 

}

}

}

 

 

Toggle ScriptedPipeline
(高级)

 

Jenkinsfile (Scripted Pipeline)

node {

   
withEnv(['DISABLE_AUTH=true',

            
'DB_ENGINE=sqlite']) {

       
stage('Build') {

           
sh 'printenv'

       
}

   
}

}

 

 

 

这种在Jenkinsfile里面定义环境变量的方式对指令脚本,例如Makefile,区别配置执行kenkins内部的构建和测试
阶段是非常有用的。

另外一个常见的使用环境变量的方式是设置或者覆盖构建或者测试脚本里面的dummy
认证信息。由于把认证信息直接放进jenkinsfile里面是一种并不高明的处理方式,kenkins
通道允许用户快速且安全的访问在Jenkinsfile文件里提前定义好的认证信息变量,而不需要知道认证信息的值是什么。

 

环境变量里的认证信息

如果你的jenkins环境包含认证信息的配置,例如构建私钥(build
secrets)或者接口(api)访问令牌(token)等可以简单插入到环境变量中供通道使用。下面的代码片段用于“机密文本”类型凭证。例如:

environment {

   AWS_ACCESS_KEY_ID    
=credentials('AWS_ACCESS_KEY_ID')

   AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')

}

正如第一个例子,这些变量将在全局或每个阶段都可用,这取决于环境指令位于jenkinsfile中的位置。

environment {

  
SAUCE_ACCESS =credentials('sauce-lab-dev')

}

 

这实际上会设置三个环境变量

SAUCE_ACCESS

包含
<username>:<password>


。SAUCE_ACCESS_USR

包含用户名

SAUCE_ACCESS_PSW

包含密码

 

认证信息只在声明式的同道中可用。
对那些使用脚本式的通道的人,查看
withCredentials

步骤的文档。

到目前为止,我们关注的是创建一个配置和执行我们可能期望的方式的管道。在接下来的几节中,我们将介绍连续交付的另一个关键方面:surfacing
feedbackand information。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: