jenkins选择不同构建环境

news2024/9/30 5:22:31

1、业务在有些情况下需要选择不同的环境来构建服务,使用同一套代码读取不同的配置
2、jenkins使用如下配置即可实现构建环境的选择
2.1、配置构建选项
在这里插入图片描述
2.2、配置构建tag
在这里插入图片描述
2.3、选择构建时间参数
在这里插入图片描述
3、使用如下pipeline实现jenkins构建环境选择

pipeline {
    agent any
	environment {
	    server_name = "phl-clean-service"
        image_name = "192.168.122.150/risk-test/phl-clean-service:${date}"
     }

    parameters {
        choice(
            choices: ['test', '190'],
            description: '选择构建环境',
            name: 'ENVIRONMENT'
        )
    }

    stages {
        stage('Printenv') {
           steps {
                script{
                  sh 'printenv'
           }
       }
	 }

        stage('pull code') {
            steps {
                checkout([$class: 'GitSCM', 
                branches: [[name: "${params.TAG}"]], 
                extensions: [], 
                userRemoteConfigs: [[credentialsId: 'xxxxxx', 
                url: 'https://codeup.aliyun.com/62d8eebfdasf87dgd6/hc-risk/hc-risk-phl.git']]])
                updateGitlabCommitStatus(name: env.STAGE_NAME, state: 'success')
                   script{
                       env.BUILD_TASKS = env.STAGE_NAME + "√..." + env.TAB_STR
                   }
            }
        }
        stage('Code Build'){ 
	        steps {
                retry(2) { sh "/opt/maven/bin/mvn   -U -pl risk-clean/clean-service -am -Dmaven.test.skip=true clean package " }
			    updateGitlabCommitStatus(name: env.STAGE_NAME, state: 'success')
                   script{
                       env.BUILD_TASKS += env.STAGE_NAME + "√..." + env.TAB_STR
                }
             }  
         }

        stage('Docker Build') {
            steps {
                script {
                // 根据选择的环境执行不同的构建操作
            if (params.ENVIRONMENT == "test") {
                retry(2) { 
sh '''
docker build  -t "${image_name}" --build-arg projectEnv=${ENVIRONMENT} -f risk-clean/clean-service/Dockerfile .
docker login -urisk-test -pAa123456 192.168.122.150
docker push ${image_name} && docker rmi ${image_name}
''' 
    }
                } else if (params.ENVIRONMENT == "190") {
                retry(2) { 
sh '''
docker build  -t "${image_name}" --build-arg projectEnv=${ENVIRONMENT} -f risk-clean/clean-service/Dockerfile .
docker login -urisk-test -pAa123456 192.168.122.150
docker push ${image_name} && docker rmi ${image_name}
''' 
    }
                } else {
                    echo '未选择有效的环境,请选择'
                }
              }
            }
        }

        stage('Application Deploy'){
	        steps {
                retry(2) { sh 'kubectl --kubeconfig /opt/kubernetes/config set image -n risk-phl deploy/"${server_name}" "${server_name}"="${image_name}"' }
                //retry(2) { echo 'test' }
			    updateGitlabCommitStatus(name: env.STAGE_NAME, state: 'success')
                   script{
                       env.BUILD_TASKS += env.STAGE_NAME + "√..." + env.TAB_STR
                }
             }  
         }

    }

}

4、执行完成后的Pipeline如下
在这里插入图片描述

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

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

相关文章

黑马程序员前端 Vue3 小兔鲜电商项目——(十二)会员中心

文章目录 路由配置模板代码会员中心个人信息用户订单 配置路由 个人中心信息渲染使用 Pinia 数据渲染个人信息 猜你喜欢封装接口渲染数据 我的订单基础列表渲染tab切换实现分页实现 细节优化默认三级路由设置订单状态显示适配 路由配置 模板代码 会员中心 创建 src\views\Me…

XR云新未来圆桌精彩回顾 | XR应用场景迭代下的新商业模式

6月15日,由平行云联合首都在线共同主办,中关村软件园协办,以“XR云新未来|弹性算力赋能可交互、沉浸式商业实践”为主题的XR行业交流盛会在北京成功举办。 本次会议我们邀请到平行云科技创始人兼CEO 李岩、XREAL 云XR负责人 吴维、瑞帆科技…

吃透JAVA的Stream流操作,多年实践总结

在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。 例如,现在有这么一个需求: 从给定句子中返回单词长度大于5的单词列表&#xf…

Java应用在线debug--bistoury介绍

Bistoury介绍 Bistoury 是去哪儿网开源的一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力,可以让开发人员无需登录机器或修改系统,就可以从日志、内存、线程、类信息、调试、机器和系统属性等各个方面…

技术管理第三板斧招聘与解聘-“能落地

1.既要帮,也要严 “既要帮,也要严”是我定义的“能落地”的核心原则,“帮”与“严”是双向要求:帮是指帮助新同学融入团队(针对的是师兄和 Leader);严是要让新同学在团队中提升自己&#xff0c…

火爆全网,接口测试总结汇总,全知识点扫描卷起来...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 第一部分&#xf…

JavaSE-11 【内部类】

文章目录 JavaSE-11 【内部类】第一章 成员内部类和局部内部类1.1 四种权限修饰符1.2 内部类的概念和分类1.3 成员内部类的定义格式1.4 成员内部类的使用1.5 内部类的同名变量访问1.6 局部内部类定义1.7 局部内部类的final问题 第二章 匿名内部类2.1 匿名内部类2.2 匿名内部类的…

Sangfor华东天勇战队:shiro注入filter内存马

注入步骤 https://github.com/yyhuni/shiroMemshell&#xff08;实验环境&#xff09; 这里用的 pom.xml加入 <dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.28.0-GA</version> <…

阿里企业邮箱域名解析MX记录值设置

阿里企业邮箱配置需要为域名添加MX解析记录&#xff0c;不只是MX域名解析记录值&#xff0c;还需要为域名添加pop3、imap、smtp及mail等CNAME解析类型&#xff0c;阿里云百科分享阿里云企业邮箱域名MX解析记录类型、记录值及服务器地址&#xff1a; 目录 新版阿里企业邮箱域名…

FPGA解码 4K MIPI 视频自定义IP版 纯vhdl实现 CSI2 RX 采集OV13850 提供工程源码和技术支持

目录 1、前言2、Xilinx官方主推的MIPI解码方案3、本 MIPI CSI2 模块性能及其优越性4、我这里已有的 MIPI 编解码方案5、vivado工程介绍6、上板调试验证7、福利&#xff1a;工程代码的获取 1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了&#xff…

div转data:image/svg编码图片

前言 将div转base64图片 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>div-svg-base64</title><script type"text/javascript" src"/js/jquery-3.2.1.min.js"></script><scr…

使用 Jetpack Compose 的 TextButton 组件

Jetpack Compose 是 Google 推出的一种声明式 UI 框架&#xff0c;它使 Android UI 开发变得更加简单和直观。在本篇博客中&#xff0c;我们将深入探索 Jetpack Compose 中的 TextButton 组件。 一、TextButton的使用 二、自定义TextButton 三、Button和TextButton的区别 一…

搜索算法特训 ----- Week5/6/7 (它太重要了)

学会二叉树不知道干啥?二叉树的深度优先搜索和广度优先搜索,我要打十个乃至二十个(打开你的LeetCode撸起来)学练并举_二叉树广度优先搜索_小杰312的博客-CSDN博客 上述文章&#xff0c;初步介绍了搜索过程和关于二叉树中进行搜索的很多实例。将搜索的过程写的还是很详细的。很…

网站出现卡顿是什么原因,要怎么解决?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言网站卡顿的原因解决…

人工智能算法在外卖配送系统中的应用和前景

随着人们对于外卖服务需求的增加&#xff0c;外卖配送系统的效率和精确度成为了重要的考虑因素。而人工智能算法的出现&#xff0c;则为外卖配送系统提供了更好的解决方案。 一、应用场景 1.1 路线规划 在外卖配送过程中&#xff0c;路线的规划是非常重要的。通过人工智能算…

一线大厂最全Java面试题及答案整理汇总(2023最新版)

程序员一步入中年&#xff0c;不知不觉便会被铺天盖地的“危机感”上身&#xff0c;曾经的那个少年已经不在&#xff0c;时间就是这样公平。就算你能发明 Java 语言&#xff0c;随着时间的推移&#xff0c;你注定还是要成为慢慢变蔫的茄子&#xff0c;缓缓变黑的葡萄。 看着金…

uniapp 自定义发行 动态修改 manifest.json

这边需求是&#xff1a;根据不同的打包环境 设置不同的标题以及路径。方便各种调试。防止 每次手动每次修改 manifest.json 出错 uniapp 自定义发行: 添加自定义发行之后 Hbuilder 编辑器会自动多 出来按钮&#xff1a; 官方文档&#xff1a;概述 | uni-app官网 我这里的配置是…

大数据开发基础-环境配置篇-Hadoop集群安装

鼠鼠接下来将更新一系列自己在学习大数据开发过程中收集的资源、和自己的总结、以及面经答案、LeetCode刷题分析题解。 首先是大数据开发基础篇 环境搭建、组件面试题等 其次是更新大数据开发面经的java面试基础 最后更新一个大数据开发离线数仓的实战项目&#xff0c;自己写入…

利用R中的corrmorant包绘制精美的相关性热图

大家好&#xff0c;我是带我去滑雪&#xff01; 相关性热图 (correlation heatmap) 是一种可视化工具&#xff0c;用于展示数据集中各个变量之间的相关性。它以矩阵的形式显示变量之间的相关系数&#xff0c;并通过色彩编码来表示相关性的强度。在相关性热图中&#xff0c;每个…

html面试题-概念题汇总

文章目录 html面试题汇总 src和href的区别 HMTL的全局属性有哪些&#xff1f; 超链接访问过后hover样式就不出现的原因是什么&#xff1f;怎么解决&#xff1f; 表单中readonly和disabled属性的区别&#xff1f; iframe的优缺点&#xff1f; 浏览器渲染页面的过程 viewport属性…