关于jenkins的语法,查询了一些文章,真TMD的垃圾,就不能用人类的语言好好记录?直接机器翻译jenkins docs……,而且没有系统的整理的文章。中国的各行业实打实的技术知识储备,可见一斑:短,懒,虚
jenkinsfile的语法及变量等信息可在jenkins内查看到,路径是jenkins的地址/pipeline-syntax/globals#env,可以看到全局变量
回答几个问题:
1.properties是干啥的?
2.当点击构建时的可选或者手填参数,是在哪里设置的?multibranch中的branch单独手动添加这个值还是在jenkinsfile中生成的?
3.jenkinsfile内的全局变量,带类型声明和不带类型声明的区别?带类型是强制
4.局部变量的作用域?
5.check scm:
6.artifactory怎么设置?在哪里设置?请见devops架构篇
7.stage内withenv和def的区别?withenv只用于当前stge,而直接声明的变量可以用于全局
8.一些jenkinsfile里常用的step:Pipeline Utility Steps,比如readproperties https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/和https://jenkins.io/doc/pipeline/steps/
9.docker的相关命令:比如withrepository,见jenkins的地址/pipeline-syntax/globals#env,同全局变量在一起
10.parallel命令: 并行执行,比如在pipeline中有测试步骤,没有必要按序执行,此时可采用parallel加于执行的步骤之前表示这个步骤执行中继续进行后续的步骤https://jenkins.io/doc/book/pipeline/jenkinsfile/#parallel-execution
11.build命令:调用另一个job,直接使用build https://jenkins.io/doc/pipeline/steps/pipeline-build-step/
12.基本模块:比如dir之类的https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/
一,变量:
来源:
1.env.xx:jenkins系统变量,在构建过程中可传递至job内,比如构建的版本,变量名是固定不变的,在jenkins主地址/https://dso.ci.kingland.cc/pipeline-syntax/globals下可以找到,等同于ansible中的系统变量的使用方式。貌似可以直接调用已定义的系统变量,比如直接引用BRANCH_NAME而不加env
2.properties():
3.string xx = :用string的意思是:
4.boolean类型: boolean xxx = a = b,第二个等号先执行,返回结果通过第一个等号传值true或false给xxx。
jenkins哪里设置自定义的全局变量?
当变量是list时,声明使用def xxx = [ key : value,key:value]各个值之间可以换行,但是得有逗号。调用时
调用:
${xxx}
语法:调用时如果最外层是单引号,内部的${}不会解析为变量。原装不动的解析为${}.双引号不会,即单引号表示省略转义
二,credential传值
1.credential传值可以通过withcredential这个方法,具体见参考链接https://jenkins.io/doc/pipeline/steps/credentials-binding/
简单套路:withcredential(可以通过变量传进来,一个列表){在这个credential下要干的事儿}
三,方法定义,固定方法引用
四,动态变量传值,在multibranch类型的pipeline里,在每个branch内名称右侧或者左侧菜单栏有一个view configure可以添加动态参数
五,artifactory的调用语法:https://www.jfrog.com/confluence/display/RTF/Working+With+Pipeline+Jobs+in+Jenkins