jenkinsfile声明式配置流水线及拉取代码打包测试

集中管理 JenkinsFile:一步步教程 - Pipeline script from SCM 你是否有过这样的困扰:每个项目都有一个 JenkinsFile 文件,但是这些文件散布在不同的项目仓库中,导致管理和维护成为一件繁琐的事情?在这个步骤中,我们将创建一个 Git 仓库,用于集中存放所有项目的 JenkinsFile 文件。在这个步骤中,我们将在 “jenkinsfile-collection” 项目中创建一个名为 “Jenkinsfile” 的文件,此文件将用于驱动所有其他。在这个步骤中,我们将把各个项目的 JenkinsFile 文件放入集中仓库的对应子目录中。 阅读详情

先决条件

jenkins部署完成 这里用的是2.486
部署方式 k8s集群使用sts部署
git仓库 gitlab本地自己搭的gitlab
项目地址 https://github.com/pig-mesh/pig.git

项目是开源项目.我个人为了贴近生产环境所以拉倒了gitlab中.

编辑Jenkinsfile阶段

创建流水线

创建gitlab代码拉取凭据

这里使用的是用户名密码的方式,(后面直接根据url地址关联到这个用户名密码即可使用)

配置流水线信息

正常情况下需要配置流水线的基础配置信息,但是这里说了使用声明式的配置方式,所有基础配置都在jenkinsfile中,

这里创建项目组以及创建仓库的步骤就不说了.

项目是一个分布式项目,所以有顶级pom文件个子pom文件.这里说明一下,有些问题等我搞明白了后续再补充,

顶级pom文件中是包含子pom文件的.其中module字段中的名称就是各个子项目的项目名称.所以在进行构建的时候需要名称一致进行构建打包操作.具体以操作名称后面的Jenkinsfile中会体现.

书写Jenkinsfile文件,
env.serviceName = "${env.JOB_NAME}".split('_')[0]
def jdks = 	["jdk17":"/opt/java/openjdk",
			 "jdk11":"/opt/java/java11"
			]
currentBuild.displayName = "${env.serviceName}"
currentBuild.description = "serviceName: ${env.serviceName}"
pipeline{
	agent any 
	parameters {
		string (name: 'srcUrl',defaultValue:'http://192.168.59.30:28080/devops8/pig.git',description:'代码仓库地址')
		choice (name: 'javaVersion', choices: ['jdk17','jdk11','jdk8'], description: 'jdk版本-根据java版本来选择')
        choice (name: 'branchName', choices: ['main','master','jdk17','dev','test',], description: '仓库分支分支')
		string (name: 'VERSION',defaultValue:'RELEASE-1.1.1',description:'构建版本')
    	}
//这里用于初始化环境变量
	stages{
		stage("init"){
			stage{
				script{
					sh """
						export JAVA_HOMES=${jdks["${params.javaVersion}"]}
						echo \$JAVA_HOMES
					"""
				}
			}
		}
//这里拉取代码
		stage("run"){
			steps{
				script {
					//script
					//拉取仓库代码
					checkout scmGit(branches: [[name: "${params.branchName}"]], 
					extensions: [], 
					userRemoteConfigs: [[credentialsId: 'gitlab-admin',   //添加凭据
					url: "${params.srcUrl}"]])
					sh 'ls -l '
					echo "${params.VERSION}"+'版本号码'
					echo "${params.serviceName}"+'服务名称'
				}
			}
		}
//这里构建jar包
		stage("Build"){
			steps{
				script {
                    sh  "mvn  clean package -pl ${env.serviceName} -am"
					sh "ls ./pig-register/target"
				}
			}
		}
	}
}

这里

说明一下:

这里大致分成几个部分,

全局环境变量

1.环境变量以外的部分,用于将全局环境变量进行切分获取通用的构建项目部分,这里需要与pom文件中的模块子任务名称一致,如果有多个子任务那就按照相同的方式切割就可.

env.servic
Jenkins自动化部署(三)流水线脚本-pipeline(多图) 之前看了很多博主写的文章,都是要先去配置环境变量,安装插件等等,其实新版本的jenkins在第一次登陆时选择的推荐插件中,已经把我们常用的都安装好了,以我的需求不需要去配置那些东西了,我拉取代码是在github上,使用git插件就可以了,打包docker镜像也是使用的挂载到物理机的docker服务,使用的是物理机上的docker服务来打包镜像,所以其他那些插件一个都用不上。 一、建立pipeline任务(提示:下方多图操作,按顺序仔细看) 二、拉取代码,并生成doc... 阅读详情

相关推荐

Jenkinsfile流水线构建教程

本文介绍Jenkins2 Jenkinsfile构建流水线的方法.

一些C++相关的技术笔记或者教程. 1667

Jenkinsfile学习经验分享

    Jenkinsfile是Jenkins2.x版本推出流水线pipeline之后的配置文件,可以将构建过程全部以代码的形式写在Jenkinsfile里面,Jenkinsfile随代码库一起进行维护。关于Jenkinsfile的更多信息请查看Jenkins官网。 流水线     流水线是Jenkins2.x版本推出的新特性,按照其字面意思理解,将软件的生产过程与传统工艺的生产过程相比较,从原料...

Smiled0388的博客 2209

DCDC系列(一): COT DCDC基本原理

电流环DCDC属于双环控制模式,根据电流检测的位置,分为峰值电流环控制模式、谷值电流环控制模式和平均电流环控制模式,主要由输出电压反馈环和电流环两个环路来实现控制,其瞬态响应比电压环更好,且有自动限流的功能,但仍需要斜坡补偿网络,且对噪声敏感。Stage3: 在下管NMOS打开阶段,由于后级负载此时间段内消耗的电量较少,所以VFB还未低至Vref,所以此阶段中,上管PMOS和下管NMOS均处于关断状态,此时的电感电流为0mA,此阶段测的VSW上的电压就是Cout上的电压VREG;

weixin_40073649的博客 3938

别再凭感觉选电容了!手把手教你计算电机控制器里的母线电容(附Excel计算工具)

本文详细解析了电机控制器中母线电容的选型方法,从理论计算到工程实践,帮助工程师避免常见误区。通过精确计算纹波电压、电容容量等关键参数,并结合薄膜电容与电解电容的性能对比,提供实用的选型建议。附带的Excel计算工具可快速完成参数计算,适用于工业伺服驱动和电动车电机控制器设计。

weixin_28720573的博客 518

【VisionMaster】图像源模块之本地图像

图像采集之图像源

zhy29563 6958

2080Ti双卡开启NVLink

本文介绍了如何在Ubuntu 22.04系统下给2080Ti双卡开启NVLink的方法。

flymyd的博客 2900

挖矿病毒解决实例(隐藏进程,文章较好)(入侵)

CPU起飞了 最近有朋友在群里反馈,自己服务器的CPU一直处于高占用状态,但用top、ps等命令却一直找不到是哪个进程在占用,怀疑中了挖矿病毒,急的团团转。 根据经验,我赶紧让他看一下当前服务器的网络连接,看看有没有可疑连接,果然发现了有点东西: 上Shodan查一下这IP地址: 反向查找,发现有诸多域名曾经解析到这个IP地址: 这是一个位于德国的IP地址,开放了4444,5555,7777等数个特殊的服务端口: 其中这位朋友服务器上发现的连接到的是7777端口,

墨痕诉清风的博客 1万+

RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况

文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.

内核笔记 1万+

纳米尺度仿真软件:Quantum Espresso_(13).非线性光学性质计算

通过 Quantum Espresso,可以高效地计算材料的非线性光学性质,包括二阶和三阶非线性极化率。这些性质在许多现代技术中具有重要的应用价值。在准备输入文件时,需要详细描述系统的晶格结构和原子位置,选择合适的基组和赝势,并设置计算参数和微扰设置。通过优化计算参数和使用并行计算,可以提高计算效率和精度。最后,使用适当的工具进行结果分析和可视化,可以更好地理解材料的非线性光学行为。

kkchenjj的博客 1278

linux v3h平台开发系列详解(GMSL摄像头篇):1.11 解串器MIPI 1.5G高速率特殊deskew配置

解串器max96712 deskew配置

xian18809311584的博客 1775

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: jenkins流水线拉取远程git仓库代码
下一篇: jenkins集成sonarqube(使用token进行远程调用)
被一米六支配的恐惧
博客等级 码龄9年 246粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值