一、通用步骤和语法

传统方法步骤

在这里插入图片描述
选择要添加的参数类型
在这里插入图片描述

脚本式语法

timestamps {
    properties ([
            parameters ([
                    string(name: 'NEW_BRANCH', defaultValue: '' , description:'', trim: true),
                    choice(choices: ['mysql', 'oracle'], description: '''选择数据库类型''', name: 'DATABASE', trim: true),
            ])
    ])
}

timestamps 会在输出日志前面添加时间戳

参数化内容都放入到parameters ([
])里面

多行内容用逗号分隔

声明式语法

pipeline {
	parameters {			//参数化构建
      choice choices: ['true', 'false'], description: '测试', name: 'test'
      string name: 'NEW_BRANCH', defaultValue: '', description:'', trim: true
    }
}

多行内容用换行符分隔

声明式语法大部分都可以从Jenkins上获取
在这里插入图片描述
在这里插入图片描述
以字符串参数为例
在这里插入图片描述
填好内容后,点击Generate Declarative Directive即可在下方生成代码
在这里插入图片描述

二、String Parameter(字符串参数)

在这里插入图片描述

传统方法

在这里插入图片描述
在这里插入图片描述
参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Default Value	默认值,即VERSION的默认值为1.0
Description		描述信息
Trim the string	去掉值两边的空格,如果值为' 1.0 ',那么最终获取到的值为1.0

脚本式pipeline

string(name: 'VERSION', defaultValue: '1.0' , description:'版本名', trim: true),

注意:取值的方法有两种

println VERSION或者
println params.VERSION

声明式pipeline

parameters {
  string defaultValue: '1.0', description: '版本名', name: 'VERSION', trim: true
}

注意事项

如果没有设置参数名VERSION,那么params.VERSION的值为null

如果设置了参数名VERSION,但没有传入值,则params.VERSION的值为空,params.VERSION.size()的值为0

三、Choice Parameter(选项参数)

在这里插入图片描述

传统方法

在这里插入图片描述
参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Choices			可选值,每行代表一项可选值
Description		描述信息

脚本式pipeline

choice(choices: ['mysql', 'oracle'], description: '''数据库类型''', name: 'DB_TYPE', trim: true),

声明式pipeline

parameters {
  choice choices: ['mysql', 'oracle'], description: '数据库类型', name: 'DB_TYPE'
}

四、Multi-line String Parameter(多行文本)

传统方法

在这里插入图片描述

声明式pipeline

parameters {
  text defaultValue: '''192.168.1.2
192.168.1.3''', description: 'k8s节点IP', name: 'K8S_NODE'
}

五、Boolean Parameter(布尔类型参数)

在这里插入图片描述

传统方法

在这里插入图片描述
勾上Default Value,则IS_BUILD的值为true

脚本式

booleanParam(defaultValue: true, description: '是否构建,默认为true', name: 'IS_BUILD'),

声明式

parameters {
  booleanParam defaultValue: true, description: '是否构建,默认为true', name: 'IS_BUILD'
}

六、List Git Branches(列出git分支)

依赖插件:List Git Branches Parameter
在这里插入图片描述

在这里插入图片描述

传统方法

在这里插入图片描述
参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Repository URL	git仓库地址
Credentials		凭据(通常为账号密码),可以点击右边的Add进行配置
Parameter Type	可以选分支或Tag,也可以都选
Tag Filter		过滤tag号
Branch Filter	添加过滤规则;只显示dev和hotfix分支。支持扩展正则.*/y?featureY?-.*、.*/hotfix-DEVOPS.V2.*release$、*/DEVOPS.V[1-2]{1}[0-1]{1}*release
Quick Filter	添加搜索功能

脚本式

listGitBranches(branchFilter: '.*/dev||.*/hotfix.*', credentialsId: 'a2b624d4-567d-4ff2',
                                 defaultValue: '', name: 'BRANCH', quickFilterEnabled: true, remoteURL: 'https://192.168.1.2/devops.git', selectedValue: 'NONE',
                                 sortMode: 'DESCENDING_SMART', tagFilter: '*', type: 'PT_BRANCH')

credentialsId,每配置一个凭据就会生成对应的credentialsId,可以到凭据管理处查看

声明式

parameters {
  listGitBranches branchFilter: '.*/dev||.*/hotfix.*', credentialsId: 'a2b624d4-567d-4ff2', defaultValue: '', name: 'BRANCH', quickFilterEnabled: true, remoteURL: 'https://192.168.1.2/devops.git', selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
}

七、extendedChoice复选框

参考文章:Jenkins 参数化构建(Extended Choice Parameter)
依赖插件:Extended Choice Parameter

效果图

在这里插入图片描述

传统方法

在这里插入图片描述

脚本式

properties([
            parameters([
                    extendedChoice(description: '跳过指定的git工程', multiSelectDelimiter: ',', 
                    name: 'SKIP_GIT_PRODUCT', quoteValue: false, saveJSONParameterToFile: false,
                    type: 'PT_CHECKBOX', value: 'web,backend,db',
                    defaultValue: 'web',visibleItemCount: 3),
            ]),
    ])

解释:

multiSelectDelimiter	指定分隔符,这里指定的是逗号
type为PT_CHECKBOX		表示复选框
defaultValue			设置默认值
visibleItemCount		界面展示选项行数,默认为5

八、Active Choice Parameter参数化构建(动态获取参数选项)

依赖插件Active Choice

传统方式

在这里插入图片描述

声明式和脚本式写法一样

注意:/data/shell/version.sh脚本需要在执行机上存在

properties([
  parameters([
   	[
      $class: 'ChoiceParameter',
      choiceType: 'PT_SINGLE_SELECT',
      description: '请选择对应的的版本', 
      filterable: true, 
      name: 'version',
      script: [
        $class: 'GroovyScript',
        script: [
        classpath: [], 
        sandbox: false, 
        script: 
            '''def gettags2 = ["/data/shell/version.sh"].execute()
return gettags2.text.readLines()'''
    	]
   	 ]
    ]
  ])
])
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐