Jenkins 参数

解决方法有两个(推荐方案二!!!):
1、方案一:安装Groovy Postbuild插件,自己写代码,缺点是局限性比较大,适用于参数类型是string的,并不适用于bool、choice类型,因为这些类型的默认值被readonly修饰。(但此方案有一个优点,就是假如你需要用 Extended Choice Parameter Plug-In 这个多选参数插件,该方案可以修改其默认值)

2、方案二:安装Persistent Parameter Plugin,适用范围广,string、text、bool、choice也都适用。

或两个方案混合使用都可

方案一 、 安装Groovy Postbuild 插件。

Groovy Postbuild | Jenkins plugin

方案二 、安装Persistent Parameter Plugin插件。、

Jenkinsfile中通过parameters中的choice(下拉框)类型获取输入参数的方法,这篇文章将会继续介绍Jenkinsfile的parameters所支持的其他物种类型的使用方式。

parameter{}

使用限制:必须写在pipeline{}块中,只能存在一处parameter{}

参数类型 Jenkinsfile目前支持如下六种类型的参数,具体说明如下所示:

参数类型    参数说明

  • string    字符串类型参数
  • text       文本类型参数,与字符串的区别在于可以包含多行信息,用于传入较多信息输入
  • booleanParam    布尔类型参数
  • choice         类似下拉框或者支持多值的单选参数
  • file               指定构建过程中所需要的文件
  • password    考虑到安全的因素,需要通过参数方式传递的密码类型
pipeline {
  agent any

  parameters {
    choice(
      description: '你需要选择哪个模块进行构建 ?',
      name: 'modulename',
      choices: ['Module1', 'Module2', 'Module3']
    )
    
    string(
        description: '你需要在哪台机器上进行部署 ?',
        name: 'deploy_hostname', 
        defaultValue: 'host131', 
    )

    text(
        name: 'release_note', 
        defaultValue: 'Release Note 信息如下所示: \n \
Bug-Fixed: \n \
Feature-Added: ', 
        description: 'Release Note的详细信息是什么 ?'
    )

    booleanParam(
        name: 'test_skip_flag', 
        defaultValue: true, 
        description: '你需要在部署之前执行自动化测试么 ?'
    )


    password(
        name: 'deploy_password', 
        defaultValue: 'liumiaocn', 
        description: '部署机器连接时需要用到的密码信息是什么 '
    )

    file(
        name: "deploy_property_file", 
        description: "你需要输入的部署环境的设定文件是什么 ?"
    )
  }

  stages {
        stage('Build') { 
            steps { 
                echo "Build stage: 选中的构建Module为 : ${params.modulename} ..." 
            }
        }
        stage('Test'){
            steps {
                echo "Test stage: 是否执行自动化测试: ${params.test_skip_flag} ..."
            }
        }
        stage('Deploy') {
            steps {
                echo "Deploy stage: 部署机器的名称 : ${params.deploy_hostname} ..." 
                echo "Deploy stage: 部署连接的密码 : ${params.deploy_password} ..." 
                echo "Deploy stage: Release Note的信息为 : ${params.release_note} ..." 
            }
        }
    }
  }

参考

关于Jenkins中每次构建修改参数默认值的解决办法_尚小锋的博客-CSDN博客_jenkins 修改参数

Jenkins基础:Jenkinsfile使用实例:4:六种参数类型_淼叔的博客-CSDN博客_jenkins文本参数 

你可能感兴趣的:(工具,jenkins,运维)