jenkins - Jenkinsfile:修剪选择参数并将其传递给阶段
问题描述
下面是我正在使用的詹金斯文件。但是现在我需要根据 ENVIRONMENT 选择 ID,因为根据 ENVIRONMENT 记住帐户 ID 并不容易。当我选择 sdbx 来选择 1807402234 时,我可以在 jenkinsfile 中添加什么方法。请建议
或者如果我使用如下选择参数,是否有办法在舞台上修剪 ID 参数。
choice(
name: 'ID',
choices: [ 'sdbx-1807402234', 'devl-5187460678', 'test-891137040']
)
注意:我需要 ENVIRONMENT 和 ID 参数。我也是詹金斯 groovy 的初学者。
我的詹金斯文件
def deploy(env) {
step([$class: 'UCDeployPublisher',
siteName: siteName,
deploy: [
$class: 'com.urbancode.jenkins.plugins.ucdeploy.DeployHelper$DeployBlock',
deployApp: appName,
deployEnv: 'DEV',
deployVersions: "${compName}:${version}",
deployProc: simpleDeploy,
deployOnlyChanged: false,
deployReqProps: "ID=${params.ID}"
]])
parameters {
choice(
name: 'ENVIRONMENT',
choices: [ 'sdbx', 'devl', 'test' ]
)
choice(
name: 'ID',
choices: [ '1807402234', '5187460678', '891137040']
)
stage (DEV') {
steps {
script {
if (params.ENVIRONMENT == "dev"){
deploy('devl') ===> this will call my deploy function
}
}
}
}
解决方案
是的,您可以通过使用split
函数来实现这一点。
PARAMS = params.ID.split("-")
例子 :
def PARAMS = []
pipeline {
parameters
{
choice(
choices: ['sdbx-1807402234', 'devl-5187460678', 'test-891137040'],
name: 'ID'
)
}
agent any
stages {
stage (DEV') {
steps {
script{
// Split choice parameter selected ID by '-'
PARAMS = params.ID.split("-")
// Get environment name selected
def environment = PARAMS[0]
// Get ID selected
def id = PARAMS[1]
println ("environment is : ${environment}")
println ("id is : ${id}")
if (environment == "dev"){
deploy('devl') ===> this will call my deploy function
}
}
}
}
}
推荐阅读
- yii - 在 Yii2 中将参数从视图传递到布局
- nginx - Nginx、Https、反向代理、握手错误。需要审查“nginx/sites-enabled/default”文件。
- python - 从python中的共享内存字典加载
- validation - cakephp 3 表单验证相关模型数据
- javascript - 如何在 D3 中缩小时按时间尺度对图标进行聚类?
- javascript - Owlcarousel 在 IE Mobile 11 上无法正常工作
- c# - .NET - 使用多个 SqlParameters 将异常记录到 db 并指定每个 db 列中的内容
- asp.net - 避免在 TreeView SelectedNodeChanged 上回发(在 jquery 对话框内)
- python - 有没有办法从轮子上获得相当于冻结点的方法?
- excel - Excel VBA 无法打开从 Google Drive 下载的工作簿