Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pipeline input步骤

pipeline input步骤

原创
作者头像
陈不成i
修改于 2021-06-03 10:03:22
修改于 2021-06-03 10:03:22
1.7K00
代码可运行
举报
文章被收录于专栏:ops技术分享ops技术分享
运行总次数:0
代码可运行

一.简介

执行imput步骤会暂停pipeline,直到用户输入参数。这是一种特殊的参数化pipeline的方法。

我们可以利用input步骤实现以下两种场景: 1.实现简易的审批流程。例如,pipeline暂停在部署前的阶段,由负责人点击确认后,才能部署。 2.实现手动测试阶段。在pipeline中增加一个手动测试阶段,该阶段中只有一个input步骤,当手动测试通过后,测试人员才可以通过这个unput步骤

在Jenkinsfile中加入input步骤

  1. steps {
  2.     input message:"发布或者停止"
  3. }若只有message参数,则 input”发布或停止”,需要点击按钮,才可以继续。

不管是哪个选项,日志都会记录是谁操作的,对审计很友好

二.input步骤复杂用法

  1. //变量名,用于存储input步骤的返回值
  2. def approvalMap
  3. pipeline {
  4.     agent any
  5.     stages {
  6.         stage('pre deploy') {
  7.             steps {
  8.                 script {
  9.                     approvalMap = input(
  10.                         message: '准备发布到哪个环境?',
  11.                         ok:'确定',
  12.                         parameters: [
  13.                             choice(choices:'dev\ntest\nprod', description:'发布到什么环境?', name:'ENV'),
  14.                             string(defaultValue:'', description:'', name:'myparam')
  15. ],
  16.                         submitter:'admin,admin2,releaseGroup',
  17.                         submutterParameter:'APPROVER'
  18. )
  19. }
  20. }
  21. }
  22.         stage('deploy') {
  23.             steps {
  24.                 echo "操作者是 ${approvalMap['APPROVER']}"
  25.                 echo "发布到什么环境? ${approvalMap['ENV']}"
  26.                 echo "自定义参数: ${approvalMap['myparam']}"
  27. }
  28. }
  29. }
  30. }

在pipeline外定义了一个变量approvalMap。这是因为定义在阶段内的变量的作用域只在这个阶段中,而input步骤的返回值需要跨阶段使用,所以需要将其定义在pipeline外。

同时,由于在pipeline中直接使用了Groovy语法赋值表达式,所以需要将approvalMap=input(..) 放到script块中。

input步骤的返回值类型取决于要返回的值的个数。如果只有一个值,返回值类型就是这个值的类型。如果有多个值,返回值类型为Map类型。本实例返回的approvalMap就是一个map。Map的key就是每个参数的name属性,比如EVN,myparam都是key。

除了可以在返回的map中放手动输入的值,还可以放其他数据,比如submintterParameter:’APPROVER’代表将key APPROVER放到返回的map中。

步骤的参数:

  • message: input步骤的提示信息
  • submitter(可选) 字符串类型,可以进行操作的用户ID或用户组名,使用逗号分隔,在逗号左右不允许有空格。者在做input步骤的权限控制方面很实用。
  • submitterParameter(可选):字符串类型,保存input步骤的实际操作者的用户名的变量名。
  • ok(可选):自定义确定按钮的文本。
  • parameters(可选):手动输入的参数列表。
  • parameters指令支持的参数类型,input步骤都支持,写法一样

approvalMap还有一种定义方式,放在environment中。这样不需要定义顶部变量了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
environment {    approvalMap = ''}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jenkins Pipeline用户权限管理新技巧:打造安全高效的流水线!
基于角色的访问控制(Role-based access control,简称 RBAC),指的是通过用户的角色(Role)授权其相关权限,这实现了更灵活的访问控制,相比直接授予用户权限,要更加简单、高效、可扩展。
用户1107783
2024/05/25
2790
Jenkins Pipeline用户权限管理新技巧:打造安全高效的流水线!
史诗级整理 Jenkins 流水线详解
jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。文档只介绍声明流水线。
我的小碗汤
2023/03/19
8.2K0
史诗级整理 Jenkins 流水线详解
基于Jenkins Pipeline构建企业级CI/CD
本设计通过Jenkins Generic Webhook Trigger 插件实现了基于Webhook自动触发流水线构建。
用户1107783
2024/05/21
2920
基于Jenkins Pipeline构建企业级CI/CD
Jenkins API+Pipeline深度实践之input的自动化
首先回过头再来看看pipeline input的语法及功能,参考我之前总结的pipeline input语法
仙人技术
2021/03/24
2.3K0
【Jenkins系列】-Pipeline语法全集
parameters指令提供用户在触发Pipeline时的参数列表。这些参数值通过该params对象可用于Pipeline步骤
DevOps在路上
2023/05/16
2.3K0
【Jenkins系列】-Pipeline语法全集
2.Jenkins进阶之流水线pipeline语法入门学习
Q: 什么是 Groovy 语言 答: Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言,在语言的设计上它吸纳了 Python、Ruby 和 Smalltalk 语言的优秀特性,语法非常简练和优美,开发效率也非常高(编程语言的开发效率和性能是相互矛盾的,越高级的编程语言性能越差,因为意味着更多底层的封装,不过开发效率会更高,需结合使用场景做取舍)
全栈工程师修炼指南
2022/09/29
18.4K0
2.Jenkins进阶之流水线pipeline语法入门学习
Jenkins结合钉钉/企微机器人实现CICD审批功能
一、实现流程1.代码自动构建(我这里做的手动触发,你可以调整为自动触发构建)2.流转审批节点3.触发钉钉或企业微信或其他平台机器人发布审批信息4.审批人登入Jenkins填写随机Token确认审批发布5.Token认证成功,发布站内信进行通知发版具体时间6.到达发布时间即可自动发布线上K8s集群说明:本文不会详细描述整个过程,只是把大致流程讲一下,将核心的代码贴出来,大家可自行根据自己的项目去改造。相关的 Jenkinsfile文件已经上传至本人的 GitHub仓库,可自行进行克隆下载;如果对您有帮助别忘记
浅时光博客
2022/09/11
3.2K0
Jenkins结合钉钉/企微机器人实现CICD审批功能
Jenkins Pipeline流水线详解,建议收藏!
Jenkins 流水线(Pipeline)是一种持续集成和交付(CI/CD)工具,它以代码的方式定义整个软件开发过程中的构建、测试和部署流程。与传统的 Jenkins 项目和自由风格项目相比,Jenkins 流水线具有以下显著特点和优势:
测试开发技术
2025/06/08
3050
Jenkins Pipeline流水线详解,建议收藏!
Jenkins_流水线语法_002
parameters 指令提供了一个用户在触发流水线时应该提供的参数列表。这些用户指定参数的值可通过 params 对象提供给流水线步骤, 了解更多请参考示例。
Cyylog
2020/08/19
1.9K0
打造企业级自动化运维平台系列(六):Jenkins Pipeline 入门及使用详解
作为一种流行的持续集成和交付工具,Jenkins有多种方式来实现交付流水线。其中,Jenkins Pipeline是一种比较流行的方式,它提供了一个DSL(Domain Specific Language 的缩写,中文翻译为:领域特定语言)来描述交付流水线。
民工哥
2024/01/18
2.8K0
打造企业级自动化运维平台系列(六):Jenkins Pipeline 入门及使用详解
使用Jenkins Pipeline自动化构建发布Java项目
Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
星哥玩云
2022/07/26
1.1K0
使用Jenkins Pipeline自动化构建发布Java项目
Jenkins input插件最佳实践(交互)
你是否用过Shell编程中的read交互式赋值? 是否用过Python中的input()函数完成在屏幕中的交互赋值操作呢?
DevOps云学堂
2019/10/31
4.8K0
Jenkins2 学习系列11 -- 参数化构建
有些项目的构建需要动态的传入一些参数,比如需要用户输入一些内容,或者上传一个文件,或者为一些配置打钩,作为不同的参数,当构建时这些参数作为环境变量来影响具体的构建过程。
mafeifan
2019/07/22
1.3K0
Jenkins2 学习系列11 -- 参数化构建
「持续集成实践系列 」Jenkins 2.x 构建 CI 自动化流水线常见技巧 (二)
在上一篇文章中,我们介绍了Jenkins 2.x实现流水线的两种语法,以及在实际工作中该如何选择脚本式语法或声明式语法。原文可查阅:「持续集成实践系列」Jenkins 2.x 搭建CI需要掌握的硬核要点(一)
测试开发技术
2020/06/05
1.4K0
「持续集成实践系列 」Jenkins 2.x 构建 CI 自动化流水线常见技巧 (二)
pipeline 步骤(中)
stash步骤可以将一些文件保存起来,以便被同一次构建的其他步骤或阶段使用。如果整个pipeline的所有阶段在同一台机器上执行,则stash步骤是多余的。所以,通常需要stash的文件都是要跨Jenkins node使用的。
陈不成i
2021/06/03
1.8K0
Jenkins声明式Declarative Pipeline
指定整个Pipeline或特定阶段是在Jenkins Master节点还是Jenkins Slave节点上运行。可在顶级pipeline块和每个stage块中使用(在顶层pipeline{}中是必须定义的 ,但在阶段Stage中是可选的)
YP小站
2021/12/06
3.7K0
Jenkins中使用pipeline
如同工厂的生产线,每个节点只关注自己的任务,然后流向下一个节点。 我们在编排jenkins时,也可以使用这种思想。
赵云龙龙
2019/09/17
2.9K0
Jenkins中使用pipeline
pipeline配置java项目
pipeline { agent { label 'slave' } options { timestamps() disableConcurrentBuilds() buildDiscarder( logRotator( numToKeepStr: '20', daysToKeepStr: '30', ) ) } parameters {
陈不成i
2021/06/04
4750
Jenkins Pipeline插件十大最佳实践!
Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则。基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本来定义,并且提供了非常强大的方法来开发复杂的、多步 DevOps Pipeline 。本文记录了编写 Jenkins Pipeline 的一些的最佳实践和不推荐的代码示例和说明。 1. 要使用真正的 Jenkins Pipeline 不要使用像 Build Pipeline 插件或者 Buildflow 插件这
程序猿DD
2018/02/01
3.7K0
Jenkins Pipeline插件十大最佳实践!
Jenkins_流水线语法_001
本节是建立在 流水线入门内容的基础上,而且,应当被当作一个参考。 对于在实际示例中如何使用流水线语法的更多信息, 请参阅本章在流水线插件的2.5版本中的 使用 Jenkinsfile部分, 流水线支持两种离散的语法,具体如下对于每种的优缺点, 参见语法比较。
Cyylog
2020/08/19
1.6K0
相关推荐
Jenkins Pipeline用户权限管理新技巧:打造安全高效的流水线!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档