DevOps-Jenkins-CD持续交付操作

news/2024/7/5 9:29:27

基于Git参数构建

之前是默认拉取最新提交代码构建,实际中不适用,需要通过打标签选择发布相应版本

打开Jenkins任务设置,勾选参数化构建过程 > 选择Git参数(这里是Git Parameter插件的作用)

在这里插入图片描述

设置标识名称(记住它,下面的构建步骤需要添加设置这个变量),描述随意,参数类型基于标签

默认值:需要注意,默认是master分支,我这是mian修改相应即可。

在这里插入图片描述

滑到 Build Steps 设置,添加一个构建步骤,选择执行Shell命令方式

在这里插入图片描述

然后按紧三横图标拖动到第一步最上面位置来

设置命令,切换到指定版本

git checkout $version

在这里插入图片描述

保存之后会发现,立即构建按钮变成了Build with Parmeters
右侧出现了一个我们设置的version,框里空白的,因为我们还没去Gitlab仓库打标签版本

在这里插入图片描述

Gitlab打版

进入代码仓库中点击“Tags”

在这里插入图片描述

点右上角的“New Tag”

设置标签名字,例如v1.0.0
在这里插入图片描述

修改项目代码并推送到Gitlab仓库
在这里插入图片描述

推送成功后,再进行打标签动作,例如v1.0.1
在这里插入图片描述

这时候我们已经打了2个标签了,代码不同处就是v1.0.1版本页面多了个v1.0.1文字标识
在这里插入图片描述

Jenkins构建

回到Jenkins任务构建页面,已经识别到了我们再Gitlab打的2个标签

在这里插入图片描述

直接选择相应版本发版即可,当前页面本来就是v1.0.0的代码,所以这里我直接选择v1.0.1标签发版

Started by user 我是真滴帅
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/mytest
The recommended git tool is: NONE
No credentials specified
 > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/mytest/.git # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url http://192.168.170.111:8888/root/jenkins-cicd-mytest.git # timeout=10
Fetching upstream changes from http://192.168.170.111:8888/root/jenkins-cicd-mytest.git
 > git --version # timeout=10
 > git --version # 'git version 2.30.2'
 > git fetch --tags --force --progress -- http://192.168.170.111:8888/root/jenkins-cicd-mytest.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10
Checking out Revision 971357ca89845b6f57327412c0975cbcc557e98c (refs/remotes/origin/main)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 971357ca89845b6f57327412c0975cbcc557e98c # timeout=10
Commit message: "修改index.html内容,用于区别v1.0.0"
 > git rev-list --no-walk f1b9b50fb0e2b57a42510dd5eafb91741794cb8b # timeout=10
[mytest] $ /bin/sh -xe /tmp/jenkins13022689792363235212.sh
+ git checkout v1.0.1
HEAD is now at 971357c 修改index.html内容,用于区别v1.0.0
[mytest] $ /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven/bin/mvn clean package -DskipTests
[INFO] Scanning for projects...
[INFO] 
[INFO] -------------------------< com.monster:mytest >-------------------------
[INFO] Building mytest 0.0.1-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] Parameter 'archive' is unknown for plugin 'spring-boot-maven-plugin:2.6.13:repackage (repackage)'
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ mytest ---
[INFO] Deleting /var/jenkins_home/workspace/mytest/target
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ mytest ---
[INFO] Copying 2 resources from src/main/resources to target/classes
[INFO] 
[INFO] --- compiler:3.8.1:compile (default-compile) @ mytest ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /var/jenkins_home/workspace/mytest/target/classes
[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ mytest ---
[INFO] skip non existing resourceDirectory /var/jenkins_home/workspace/mytest/src/test/resources
[INFO] 
[INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ mytest ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /var/jenkins_home/workspace/mytest/target/test-classes
[INFO] 
[INFO] --- surefire:3.2.2:test (default-test) @ mytest ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- jar:3.3.0:jar (default-jar) @ mytest ---
[INFO] Building jar: /var/jenkins_home/workspace/mytest/target/mytest.jar
[INFO] 
[INFO] --- spring-boot:2.6.13:repackage (repackage) @ mytest ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.003 s
[INFO] Finished at: 2024-03-13T02:43:47Z
[INFO] ------------------------------------------------------------------------
SSH: Connecting from host [3821aea39450]
SSH: Connecting with configuration [应用服务器-170.111] ...
SSH: EXEC: completed after 16,609 ms
SSH: Disconnecting configuration [应用服务器-170.111] ...
SSH: Transferred 3 file(s)
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS
Finished: SUCCESS

发版成功,页面内容多了个【v1.0.1】

在这里插入图片描述
如果发布v1.0.1版本发现有大量bug,可以通过Jenkins快速切换v1.0.0回滚上个版本


http://lihuaxi.xjx100.cn/news/2090544.html

相关文章

Linux学习:基础开发工具的使用(1)

目录 1. Linux软件包管理器&#xff1a;yum工具1.1 yum是什么&#xff08;软件商城&#xff09;1.2 yum的使用1.3 yum的背景生态 2. 项目开发与集成开发环境3. vim编辑器3.1 vim编辑器的常见模式与模式切换3.3 vim编辑器的使用3.3.1 命令模式下的常见命令&#xff1a;3.3.2 vim…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:StepperItem)

用作Stepper组件的页面子组件。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 接口 StepperItem() 属性 参数名参数类型参数描述prevLabelstring设置左侧文本按钮内…

苹果开发者账号添加测试机显示Ineligible for 14 days

设备注册更新 - 参考 - 账户 - Apple Developer

深度解析:如何运用山海鲸可视化软件制作高效销售数据看板

在数字化时代&#xff0c;数据可视化已经成为企业决策和运营的重要工具。作为一名长期使用山海鲸可视化软件的资深用户&#xff0c;我深知其在制作销售数据可视化看板方面的优势。今天&#xff0c;我想分享一些我在使用山海鲸可视化软件制作销售数据可视化看板过程中的经验和感…

1688商品详情数据采集(商品属性,规格,价格,详情图等)

京东商品详情数据采集是一个复杂但重要的过程&#xff0c;它涉及获取商品的详细信息&#xff0c;包括商品属性、规格、价格以及详情图等。以下是关于如何进行京东商品详情数据采集的基本步骤&#xff1a; 确定采集目标&#xff1a;首先&#xff0c;你需要明确需要采集的商品信…

突破编程_C++_设计模式(备忘录模式)

1 备忘录模式的基本概念 C 备忘录模式&#xff08;Memento Pattern&#xff09; 是一种行为设计模式&#xff0c;它用于在不破坏封装的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 备忘录模…

手机号正则表达式

手机号正则表达式例子&#xff1a; /^1[3|4|5|7|8|9][0-9]\d{4,8}$/ ^1代表以1开头 [3|4|5|7|8|9] 紧跟上面的1后面&#xff0c;可以是3或4或5或7或8或9的一个数字&#xff0c;如果以后出现160开始的手机号码了&#xff0c;就需要改为 [3|4|5|6|7|8|9] [0-9]表示0-9中间的任…

计算机网络设计核心思想

大家好&#xff0c;我是大师兄&#xff0c;本篇主要是对计算机网络一些核心思想理解&#xff0c;属于内功心法&#xff0c;初学者适合入门&#xff0c;非初学者可以学习其设计思想&#xff0c;总之希望帮助大家提高对网络的理解&#xff1b; 深入浅出Linux网络硬核指南 本系列从…