2023年7月7日发(作者:)
Jenkins环境变量⽬录⼀.环境变量环境变量可以被看作是pipeline与Jenkins交互的媒介。⽐如,可以在pipeline中通过BUILD_NUMBER变量知道构建任务的当前构建次数。环境变量可以分为Jenkins内置变量和⾃定义变量。在pipeline执⾏时,Jenkins通过⼀个名为env的全局变量,将Jenkins内置环境变量暴露出来。其使⽤⽅法有多种,⽰例如下:pipeline { agent any stages { stage('Example') { steps { echo "Running ${UMBER} on ${S_URL}" # ⽅法1 推荐 echo "Running $UMBER on $S_URL" # ⽅法2 echo "Running ${BUILDNUMBER} on ${JENKINS_URL}" # ⽅法3 不推荐,难排查 } } }}默认env的属性可以直接在pipeline中引⽤。所以,以上⽅法都是合法的。但是不推荐⽅法三,因为出现变量冲突时,⾮常难查问题。echo只是为了展⽰,实际应⽤可以修改变量来达到不同的定制化。打印当前环境变量sh "printenv" //打印环境变量⼆.⾃定义环境变量当pipeline变得复杂时,我们就会有定义⾃⼰的环境变量的需求。声明式pipeline提供了environment指令,⽅便⾃定义变量。⽐如:pipeline { agent any environment { CC = "clang" } stages { stage("Example") { environment { DEBUG_FLAGS = "-g" } steps { sh "${CC} ${DEBUG_FLAGS}" sh "printenv" } } }}environment指令可以⽤在pipeline中定义,作⽤域就是整个pipeline,当定义在stage阶段,只在当前stage有效。环境变量的互相引⽤:environment { __server_name = 'mail-server' __version = "${BUILD_NUMBER}" __artifact_name = "${__server_name}-${__version}.jar"}技巧:⾃定义变量时,为避免命名冲突,可根据项⽬或公司加上统⼀前缀,如__server_name,__就是前缀。三.⾃定义全局变量定义全局环境变量可以跨pipeline使⽤。进⼊Jenkins→Manage Jenkins→Confiure System找到Global properties→勾选"Environment variables"复选框,单击“Add”按钮,在输⼊框中输⼊变量名和变量值即可。⾃定义全局环境变量会被加⼊env属性列表中,所以使⽤时可以直接⽤${env.g_name}引⽤。四.常⽤变量定义1.定义构建名和构建显⽰,在script包裹后直接覆盖即可yName = "1.2.3-SNAPSHOT"ption ="分⽀: " + "2020-09-18"还可以插⼊html显⽰颜⾊或者链接cription(‘
All cases Passed but maybe include retry cases
’)2.设置job状态jenkins job的状态,常⽤状态有⼏种:SUCCESS,UNSTABLE,FAILURE,ABORTED,可以在pipeline脚本中⾃主修改job的状态,但只能由好的状态变成坏的。例如发布成功是SUCCESS,可以修改为UNSTABLE。 = 'FAILURE'五.常⽤环境变量BUILD_NUMBER构建号,累加的数字。在打包时,它可作为制品名称的⼀部分,⽐如server-${BUILD_NUMBER}.jarBRANCH_NAME多分⽀pipeline项⽬⽀持。当需要根据不同的分⽀做不同的事情时就会⽤到,⽐如通过代码将release分⽀发布到⽣产环境中、master分⽀发布到测试环境中。BUILD_URL当前构建的页⾯URL。如果构建失败,则需要将失败的构建链接放到邮件通知中,这个链接就可以是BUILD_URLGIT_BRANCH通过git拉取的源码构建的项⽬才会有此变量。在使⽤env变量时,需要注意不同类型的项⽬,env变量所包含的属性及其值是不⼀样的。⽐如普通pipeline任务中的GIT_BRANCH变量值为roigin/master,在多分⽀pipeline中GIT BRANCH变量的值为master所以,在pipeline中根据分⽀进⾏不同⾏为的逻辑处理时,需要留意。CHANGE_ID对于与某种更改请求相对应的多分⽀项⽬,这将被设置为更改ID,例如拉取请求号。CHANGE_URL对于与某种更改请求相对应的多分⽀项⽬,这将被设置为更改URL。CHANGE_TITLE对于对应于某种变更请求的多分⽀项⽬,这将被设置为更改的标题。CHANGE_AUTHOR对于对应于某种变更请求的多分⽀项⽬,这将被设置为拟议更改的作者的⽤户名。CHANGE_AUTHOR_DISPLAY_NAME对于对应于某种变更请求的多分⽀项⽬,这将被设置为作者的⼈名。CHANGE_AUTHOR_EMAIL对于对应于某种变更请求的多分⽀项⽬,这将被设置为作者的电⼦邮件地址。CHANGE_TARGET对于对应于某种变更请求的多分⽀项⽬,这将被设置为可以合并更改的⽬标或基本分⽀。BUILD_ID当前版本ID,与BUILD_NUMBER相同,⽤于在1.597+中创建的构建,但较旧版本的YYYY-MM-DD_hh-mm-ss时间戳记BUILD_DISPLAY_NAME当前版本的显⽰名称,默认为“#153”。JOB_NAME此构建项⽬的名称,如“foo”或“foo / bar”。JOB_BASE_NAME此建⽴项⽬的名称将剥离⽂件夹路径,例如“bar / foo”的“foo”。BUILD_TAG“jenkins- $ {JOB_NAME} - $ {BUILD_NUMBER} ”的字符串。JOB_NAME中的所有正斜杠(/)都会⽤破折号( - )替换。⽅便放⼊资源⽂件,jar⽂件等,以⽅便识别。EXECUTOR_NUMBER识别执⾏此构建的当前执⾏程序(在同⼀台计算机的执⾏程序中)的唯⼀编号。这是您在“构建执⾏者状态”中看到的数字,但数字从0开始,⽽不是1。NODE_NAME代理的名称,如果构建是代理,或者“主”,如果在主机上运⾏NODE_LABELS空格分隔的节点分配的标签列表。WORKSPACE分配给构建作为⼯作区的⽬录的绝对路径。JENKINS_HOMEJenkins主节点上分配的⽬录绝对路径存储数据。SVN_REVISIONSubversion版本号,当前已被检出到⼯作区,如“12345”SVN_URL当前已经检出到⼯作空间的Subversion URL。发布者:admin,转转请注明出处:http://www.yc00.com/news/1688700985a163679.html
评论列表(0条)