使用Jenkins中的参数跳过选项构建

时间:2016-11-18 10:48:51

标签: jenkins jenkins-pipeline

我在jenkinsfile中有多分支管道和参数化构建设置。在Jenkins中是否有任何选项可以跳过Build with parameters步骤,即用户可以直接运行该作业。

换句话说,用户可以使用默认参数值构建作业,他们不需要访问参数视图。管理员可以使用Jenkins远程API触发器更改参数。

4 个答案:

答案 0 :(得分:3)

还有另一个解决方案,不需要安装额外的插件。

stage ('Setup') {
    try {
        timeout(time: 1, unit: 'MINUTES') {
            userInput = input message: 'Configure build parameters:', ok: '', parameters: [
                [$class: 'hudson.model.ChoiceParameterDefinition', choices: 'staging\nproduction\nfree', description: 'Choose build flavor', name: 'BUILD_FLAVOR'],
                [$class: 'hudson.model.ChoiceParameterDefinition', choices: 'Debug\nRelease', description: 'Choose build type', name: 'BUILD_TYPE'],
                [$class: 'hudson.model.ChoiceParameterDefinition', choices: '4.1.12\n4.1.11\n4.1.10\n4.1.9\n4.1.8\n4.1.4\n3.5.5\n3.1.8\ncore\nOldVersion', description: 'Version Name', name: 'VERSION_NAME'],
                [$class: 'hudson.model.ChoiceParameterDefinition', choices: 'origin/develop\norigin/hotfix/4.1.11\norigin/release/4.1.8\norigin/hotfix/4.1.7\norigin/hotfix/4.1.9\norigin/hotfix/4.1.10\norigin/release/4.1.6\norigin/release/4.1.5\norigin/hotfix/3.5.5', description: 'Git branch', name: 'GIT_BRANCH'],
                [$class: 'BooleanParameterDefinition', defaultValue: false, description: 'Enable Gradle debug?', name: 'DEBUG']
        ] // According to Jenkins Bug: https://issues.jenkins-ci.org/browse/JENKINS-26143
      }
    } catch (err) {
        userInput = [BUILD_FLAVOR: 'staging', BUILD_TYPE: 'Debug',  VERSION_NAME: '4.1.12', GIT_BRANCH: 'origin/develop'] // if an error is caught set these values
    }
}

您可以为供应参数部分定义超时,如果超时已到期,则未插入任何条目" catch" section将设置默认参数,构建将在没有任何用户干预的情况下启动。

答案 1 :(得分:1)

我终于找到了this插件来解决我的问题。

首先,Jenkins文件必须配置这个隐藏参数插件。这将隐藏不需要从用户端更改的参数。

<强> jenkinsfile:

properties([[$class: 'ParametersDefinitionProperty', 
        parameterDefinitions: [
            [$class: 'WHideParameterDefinition', name: 'isValid', defaultValue: 'false']
        ]
    ]])

其次,git存储库必须已配置webhook以使用REST API触发Jenkins构建。

答案 2 :(得分:1)

首先应创建一个选择参数,然后使用它来选择和步骤。

pipeline { agent any parameters { choice( choices: 'true\nfalse', description: 'should my action run ? ', name: 'ACTION') } stages { stage ('stage_name') { when { expression { params.ACTION == 'true' } } steps { echo "My action run !" } } } }

答案 3 :(得分:0)

另一个选择是使用groovy elvis运算符来检查是否设置了参数ENV变量。如果参数为空/未设置,则可以使用默认值。

这不需要其他插件,并解决了在新分支的第一个内部版本中不显示参数的问题。

它也不会引入等待用户输入的暂停/延迟(与其他建议答案之一一样)。

pipeline {

    parameters {
        booleanParam(name: 'RUN_TESTS',
                     defaultValue: true)
        string(name: 'DEPLOY_ENVIRONMENT',
               defaultValue: "dev")
    }

    stages {
        stage('build') {
            steps {
                script {
                    runTests          = env.RUN_TESTS           ?: true
                    deployEnvironment = env.DEPLOY_ENVIRONMENT  ?: "dev"
                }
            }
        }
    }
}