jenkins 实现二级联动选择参数

需求

有2个参数,一个AppName,一个GitRepository。当选择appName时,动态显示正确的git仓库地址。

注意需要安装插件 Active Choices

添加第一个参数AppName

 参数类型选择,Active Choices Reactive Parameter,注意,这个第一个参数类型,是不一样的。

填写Groovy Script,完整内容为:

list=["aa","bb","cc"]
return list

描述填写:应用名称

启用筛选功能

添加第二个参数GitRepository

 参数类型选择,Active Choices Reactive Parameter,注意,这个第一个参数类型,是不一样的。

填写Groovy Script,完整内容为:

// 定义字典变量
def myDict = [
  "aa":"https://xx.gitlab.com/aa.git",
  "bb":"https://xx.gitlab.com/bb.git",
  "cc":"https://xx.gitlab.com/cc.git"
]

// 遍历字典
for (entry in myDict) {
  //echo "键: ${entry.key}, 值: ${entry.value}"
  if (AppName.equals(entry.key)){
       return [entry.value]
   }
}

勾选Use Groovy Sandbox

Fallback Script,返回脚本输入:

return["Could not get Environment from GitBranch Param"]

勾选Use Groovy Sandbox

描述信息填写:git地址

Referenced parameters,填写:AppName

这里是重点,参考的参数,这里写的是上边的选项参数的名字:AppName,也就是说,当这个参数发生变化是,就会触发执行上边的Groovy Script一次,可以根据脚本判断返回指定联动下拉框的值

 保存

测试

点击Build with Parameters,效果如下:

 选择一个项目,地址会自动变化

<think>好的,我现在需要帮助用户生成Jenkins流水线工作流程的思维导图。首先,回顾用户的提问历史,用户之前询问了关于绘图工具的问题,现在转向Jenkins的流水线。用户可能希望有一个结构化的视觉呈现,帮助他们理解Jenkins Pipeline的各个组成部分。 首先,我要确定Jenkins Pipeline的核心元素。根据引用[1]提到的Multibranch Pipeline和Jenkinsfile,说明用户可能需要包括分支管理、自动化构建等部分。同时,用户提到想生成思维导图,这意味着需要将各个模块分层次展示,可能包括基础结构、核心组件、高级功能等。 接下来,考虑用户可能需要的详细内容。Jenkins Pipeline通常分为声明式和脚本式,这是基本分类,必须包含在思维导图中。然后,阶段(Stages)、步骤(Steps)、节点(Agent)这些是Pipeline的基本结构,需要详细列出。同时,用户可能关心集成部分,比如与Docker、版本控制系统的整合,参考引用[2]中的容器注册表,可以加入与Harbor、Docker Registry等的集成点。 还要考虑用户的学习资源需求,引用[3]提到整理Docker资源,可能需要推荐相关的学习资料,如官方文档、教程视频等,但用户当前问题主要是生成思维导图,所以这部分可能作为补充放在最后。 用户可能没有明确说明是否需要具体的工具推荐来制作思维导图,但根据之前的回答,用户对绘图工具有所了解,所以可以简要推荐一些工具,比如XMind、MindMaster,并结合他们之前提到的工具如Canva或Figma,以保持一致性。 需要确保思维导图的层次清晰,模块之间的逻辑关系正确。例如,基础结构应包括语法类型和基本结构,核心组件涵盖具体的元素如环境变量、触发方式等,高级功能可能涉及并行执行、错误处理等。集成部分需要列出常见的工具和服务,如GitHub、SonarQube、Docker等。 最后,检查是否遗漏了用户可能关心的点,比如权限控制、通知机制,这些在持续集成流程中也很重要,应该包含在思维导图中。同时,提供学习资源帮助用户进一步学习,如官方文档链接和推荐的教程,这样用户不仅有了结构图,还能深入了解更多细节。 总结步骤:确定主要模块(基础、核心、高级、集成)、细分每个模块的内容、推荐绘图工具、提供学习资源。确保所有信息准确,结构合理,符合用户生成思维导图的需求。</think>根据Jenkins流水线工作流程的核心要素,建议按以下结构构建思维导图,采用**分层逻辑框架**并标注关键技术点: --- ### Jenkins流水线工作流程思维导图框架 **一级节点:Pipeline基础结构** - **语法类型** - 声明式Pipeline(Declarative):`pipeline`代码块结构化语法 - 脚本式Pipeline(Scripted):基于Groovy的自由编程语法 - **基本结构** - `agent`:指定执行节点(any/docker/kubernetes) - `stages`:阶段容器(必须包含至少一个stage) - `steps`:阶段内具体操作单元 **二级节点:核心组件** - **环境控制** - `environment`:全局/局部变量定义 - `parameters`:运行时参数输入(choice/string/boolean) - **流程触发** - `triggers`:定时构建(cron)/SCM轮询/Webhook触发 - `input`:人工审批阻断步骤 - **资源管理** - `tools`:自动安装指定版本工具(Maven/JDK) - `parallel`:跨节点并行任务执行 **三级节点:高级功能** - **异常处理** - `post`:构建后操作(always/success/failure) - `catchError`:捕获特定步骤错误 - **代码复用** - 共享库(Shared Libraries):跨项目复用函数/变量 - `load`:外部Groovy脚本调用 **四级节点:集成扩展** - **版本控制系统** - GitHub/GitLab触发与状态回写 - 多分支流水线自动识别`Jenkinsfile`[^1] - **制品管理** - Docker镜像推送到Harbor/Artifactory[^2] - 使用SonarQube进行代码质量门禁 - **部署衔接** - Kubernetes集群动态Pod创建 - Ansible/Terraform联动配置 --- ### 配套工具推荐 - **思维导图工具** - XMind:内置流程图模板,支持Markdown导出 - MindMaster:提供Jenkins图标素材库 - Draw.io:可直接生成SVG矢量图用于文档嵌入 --- ### 学习资源指引 1. 官方《Pipeline语法手册》详解`agent`参数与并行策略[^3] 2. YouTube教程"Jenkins Masterclass"演示多分支流水线配置[^1] 3. 实战案例库`jenkinsci/pipeline-examples`包含30+场景代码 ```groovy // 多分支流水线示例代码片段 pipeline { agent any stages { stage('Build') { steps { sh 'mvn -B clean package' archiveArtifacts 'target/*.jar' } } stage('Security Scan') { steps { dependencyCheckAnalyzer patterns: '**/*.jar' owaspDependencyCheck failBuildOnCVSS: 7 } } } post { always { emailext body: '构建结果:${currentBuild.result}', subject: '流水线${JOB_NAME}执行完成' } } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值