我在jenkinsfile中有多分支管道和参数化构建设置。在Jenkins中是否有任何选项可以跳过Build with parameters步骤,即用户可以直接运行该作业。
换句话说,用户可以使用默认参数值构建作业,他们不需要访问参数视图。管理员可以使用Jenkins远程API触发器更改参数。
答案 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"
}
}
}
}
}