jenkins发布使用邮件添加审批

首先安装好Email Extension Plugin插件并在 system下配置好邮件
然后配置流水线需要的参数
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/418fc89bfa89429783a1eb37d3e4ee26.png#pic_center
在这里插入图片描述
在这里插入图片描述
pipeline如下:

def skipRemainingStages = false   //是否跳过生产部署
def timeout_mins = 5 //超时时间,单位分
def input_message   //提示语
def randomToken    //发布秘钥
def skipadminUser = false//系统个人信息
def Applier_id
def Applier_name
def Applier_mailpipeline{agent {label "java_agent"}options { //调用颜色插件ansiColor('xterm')skipDefaultCheckout(true)}environment {Applier_name = ""Applier_mail = ""Operator_mail = ""input_message = ""}stages{stage('构建初始化') {steps("拉取代码"){echo "\033[32m ******开始拉取代码分支代码,****** \033[0m"}}stage("发送审批邮件"){steps{wrap([$class: 'BuildUser']) {script {//获取当前登录用户账户、姓名、邮箱Applier_id = "${env.BUILD_USER_ID}"Applier_name = "${env.BUILD_USER}"Applier_mail = "${env.BUILD_USER_EMAIL}"}}script{//判断当前任务是否需要审批if ("$Mode" == "NO"){skipadminUser = trueExec = truereturn}//判断审批人if ("$adminUser" != ""){adminUser = "$adminUser".split('@')[0] //只取审批人@前面字符//如果审批人为自己,则退出任务if (Applier_id == adminUser){echo "\033[31m 审批人不能为本人,任务已终止。 \033[0m"skipRemainingStages = true  //跳过下一个stagecurrentBuild.result = 'ABORTED' //当前stage build result设置为 abortedreturn} }else{echo "\033[31m 审批人不能为空,任务已终止。 \033[0m"skipRemainingStages = truecurrentBuild.result = 'ABORTED' //修改任务状态为终止状态return}skipRemainingStages = falseecho "\033[32m ******发布生产操作需审批,接下来执行生产审批流程****** \033[0m"randomToken = sh (script: "/bin/bash -c 'echo \$RANDOM'" , returnStdout: true).trim()input_message = " $Applier_name 申请发布生产"echo "${randomToken}"emailext(subject:"【请审批】${env.JOB_NAME}(#${env.BUILD_NUMBER})生产部署任务",body:"""$input_message,随机验证码是:"${randomToken}" !!! <br> <a href="${BUILD_URL}input">请点击该链接登录后审批填入token发布</a><br><h3>或者将token值"${randomToken}"告诉运维人员:${Applier_name},让其输入token进行确认</h3>""",to:"${emails}")echo "\033[32m ******申请邮件已经发送,待 $adminUser 审批****** \033[0m"}}}stage("等待审批"){when { expression {!skipRemainingStages}}steps{script{def isAbort  = false   //取消按钮timeout(timeout_mins){  //等待审批人审批,并通过timeout设置任务过期时间,防止任务永远挂起try {def userInput = input(id: 'inputap', message: "$input_message", ok:"同意", submitter:"$adminUser", parameters: [[$class: 'StringParameterDefinition',defaultValue: "", name: 'token',description: '请输入发布的秘钥' ]])if (userInput == randomToken) {skipRemainingStages = false} else {skipRemainingStages = trueecho "\033[31m 秘钥错误  \033[0m"exit}echo "\033[31m 当前输入秘钥为: ${userInput}  \033[0m"}catch(err) { // input falseecho "\033[31m ******任务已被审批人 $adminUser 拒绝****** \033[0m"currentBuild.result = 'ABORTED'  //修改任务状态为终止状态return}}}}}}
}

效果如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采集发布到WordPress网址(OneNav主题-WordPress主题)

WordPress系统的一导航主题&#xff08;OneNav主题&#xff09;是集网址、资源、资讯于一体的导航主题。 要将采集的数据批量自动发布到一导航主题&#xff08;OneNav主题&#xff09;的网址要怎么设置&#xff1f; 普通的文章采集器一般只能发布为wordpress文章类型&#xff…

自监督语义分割面模型——Masked Autoencoders Are Scalable Vision Learners(MAE)论文阅读

1、摘要 This paper shows that masked autoencoders (MAE) are scalable self-supervised learners for computer vision. Our MAE approach is simple: we mask random patches of the input image and reconstruct the missing pixels. It is based on two core designs. F…

SpringBoot使用JWT进行身份验证

JWT身份验证的流程 用户登录&#xff1a; 用户向服务器提供他们的用户名和密码。 服务器验证&#xff1a;服务器接收到请求&#xff0c;验证用户名和密码。 生成JWT&#xff1a;如果用户名和密码验证通过&#xff0c;服务器将创建一个 JWT。 JWT 包含了一些数据&#xff08;称…

[JVM] 5. 运行时数据区(2)-- 程序计数器(Program Counter Register)

一、概述 JVM中的程序计数器&#xff08;Program Counter Register&#xff09;是对物理PC寄存器的一种抽象模拟。它是一块很小的内存空间&#xff0c;几乎可以忽略不记。也是运行速度最快的存储区域。在 JVM 规范中&#xff0c;每个线程都有它自己的程序计数器&#xff0c;是…

redis之主从复制、哨兵、集群

文章目录 一、redis的高可用1.1 redis高可用的概念1.2 Redis的高可用技术 二、redis 主从复制2.1主从复制的原理2.2搭建Redis 主从复制 三、Redis 哨兵模式3.1搭建Redis 哨兵模式3.2启动哨兵模式3.3查看哨兵信息3.4故障模拟 四、Redis 群集模式4.1搭建Redis 群集模式 一、redis…

【Excel】excel多个单元格的内容合并到一个单元格,并使用分隔符

方法一&#xff1a;使用连接符 & 左键单击选中“D2”单元格&#xff0c;在D2单元格中输入公式“A2&B2&C2”&#xff0c;按“Enter”即可实现数据合并。 ------如果想连接的时候&#xff0c;中间加分隔符&#xff0c;可以使用&#xff1a;公式A2&"&#xf…

Azure Kinect 之 Note(一)

Azure Kinect Azure Kinect DK 是一款开发人员工具包&#xff0c;配有先进的AI 传感器&#xff0c;提供复杂的计算机视觉和语音模型。 Kinect 将深度传感器、空间麦克风阵列与视频摄像头和方向传感器整合成一体式的小型设备&#xff0c;提供多种模式、选项和软件开发工具包(S…

面试题更新之-HTML5的新特性

文章目录 导文新特性有哪些&#xff1f;HTML5的新特性带来了许多好处 导文 面试题更新之-HTML5的新特性 新特性有哪些&#xff1f; HTML5引入了许多新特性和改进&#xff0c;以下是一些HTML5的新特性&#xff1a; 语义化标签&#xff1a;HTML5引入了一系列的语义化标签&#…

远程在Ubuntu20.04安装nvidia显卡驱动

第零步&#xff0c;找人装一个todesk。 在终端运行&#xff1a; ifconfig 记住ip地址&#xff0c;后面要用。 第一步&#xff0c;安装软件&#xff1a; sudo apt-get update sudo apt-get install g gcc make 第二步&#xff0c;下载显卡驱动&#xff1a; 官方驱动 | NVI…

【ThinkPHP】实现一个逆向工程生成model

ThinkPHP为了节省一些重复的步骤&#xff0c;写了个简单版的生成model的工具&#xff0c;逆向生成model代码&#xff0c;节省时间&#xff0c;专注写业务代码。 ThinkPHP中的命令行也提供了一些生成代码的命令&#xff1a; make:controller 创建控制器 make:model 创建模型 m…

医院制剂研发与真实世界评价论坛圆满闭幕

医院制剂是新药的摇篮和宝库&#xff0c;现代科技为医院制剂的研发和转化赋能。在新时代新政策下&#xff0c;2023年07月16日&#xff0c;由湖南省药学会医院制剂研发与真实世界评价专业委员会&#xff08;下称“专委会”&#xff09;主委单位湖南易能生物医药有限公司&#xf…

划片机的技术分解

划片机是一种切割设备&#xff0c;主要用于将硬脆材料&#xff08;如硅晶圆、蓝宝石基片、LED基片等&#xff09;分割成较小的单元。其工作原理是以强力磨削为划切机理&#xff0c;通过空气静压电主轴带动刀片与工件接触点的划切线方向呈直线运动&#xff0c;将每一个具有独立电…

概率论的学习和整理18:为什么 P(至少成功1次) = Σ P(几何分布) ,总结几何分布和连续失败概率的关系,二项分布和累计成功k次的关系

目录 1 先说结论&#xff1a; 2 Σ几何分布的P(xn) P(n次试验至少成功1次) 2.1 几何分布的概率 2.2 这个是可以证明的&#xff0c;下面是推导过程 2.3 怎么理解呢&#xff1f; 3 另外&#xff0c;P(累计成功k次) ΣP(成功k次的二项分布) 3.1 成功k次的概率 和 累计成…

回收站怎么看当天删除的文件?在回收站中找不到被删除文件怎么回事

在日常使用电脑的过程中&#xff0c;我们常常会遭遇删除文件的错误&#xff0c;这时回收站就像是一剂“后悔药”。然而&#xff0c;当回收站中堆积了许多已删除的文件时&#xff0c;我们如何才能找到当天删除的文件呢&#xff1f;如果回收站在这时无法提供文件&#xff0c;我们…

本地Linux 部署 Dashy 并远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章&#xff1a;本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…

Python应用实例(二)数据可视化(一)

数据可视化&#xff08;一&#xff09; 1.安装Matplotlib2.绘制简单的折线图2.1 修改标签文字和线条粗细2.2 矫正图形2.3 使用内置样式2.4 使用scatter()绘制散点图并设置样式2.5 使用scatter()绘制一系列点2.6 自动计算数据2.7 自定义颜色2.8 使用颜色映射2.9 自动保存图表 数…

Visual Studio 自定义的颜色字体不生效

问题描述&#xff1a; 1、dll1中引用第三方库的类不识别&#xff0c;颜色黑白&#xff0c;自定义颜色不生效&#xff1b;定义的是结构体 2、在dll2引用另一个dll1中的结构体。结构体不识别&#xff0c;今天成员函数cpp中自定义颜色不生效。 问题解决方式&#xff1a; 全部清…

【MySQL备份与还原、索引、视图】练习

一、备份与还原 /***************************样例表***************************/CREATE DATABASE booksDB;use booksDB;CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL);INSERT INTO booksVALUES (11078, Lear…

macOS 14 Sonama - 小记

文章目录 Sonoma 官方资讯关于 Sonama 命名关于 壁纸Sonoma 官方资讯 macOS Sonoma Preview https://www.apple.com/hk/en/macos/sonoma-preview/官方视频介绍 Apple Events --> Watch the Keynote --> 00:43:13 (约14min) https://www.apple.com/hk/en/apple-events/mac…

树莓派使用Nginx 搭建轻量级网站远程访问

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 转载自cpolar极点云文章&#xff1a;树莓派使用Nginx 搭建轻量级网站远程访问 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#…