Jenkins自动化部署服务器及git 提交及git tag标签版本更新流程,超详细!
工作中部署的项目和服务器较多时就用上了Jenkins进行自动部署
优点
- 不用在连接单独的服务器进行更新项目,再启动项目服务的操作了
- 更新部署都是自动的,比较方便。适合大批量的部署
一、git流程部分
项目或代码更新后。首先还是先走提交仓库流程,然后再创建git tag打包版本并推送到远程服务器,便于下一步Jenkins部署
1.查看项目代码变化
git status
2.将变化后的代码提交到暂存区
git add .
ps:
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
一般来说,常用的提交命令就是 git add .
3.提交注释
git commit -m 'xxxxxx'
ps:
这一步要确保你已经设置了此次git提交的用户及邮箱,没有设置会提示你进行设置后才能提交注释,注释一定要写的言简意赅
提交用户及邮箱的设置方法有两种。在我之前的随笔里有写,这里不再过多赘述,这里直接使用修改全局git提交用户及邮箱的命令,分别执行:
git config --global user.name 你的目标用户名
git config --global user.email 你的目标邮箱名
4.推送前先下拉项目最新代码。避免直接提交会覆盖其他同事新push的代码,推送代码前先下拉这是一个好习惯
git pull
5.推送更新的代码到远程仓库
git push
6.添加git tag版本前先查看项目以有版本
git tag -l
7.添加tag版本
git tag -a vx.x.x -m 'vx.x.x'
ps:
git tag打标签分为两种类型:轻量标签和附注标签,轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。
创建轻量标签不需要传递参数,直接指定标签名称即可
git tag vx.x.x-light
创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中,建议使用附注标签
例子:git tad -a v1.3.5 -m 'v1.3.5版本' 即表示此次添加的git tag新版本为1.3.5,提交的注释为v1.3.5版本
切换到标签,与切换分支命令相同:
git checkout [tagname]
查看标签信息
git show v0.1.2
删除标签(误打或需要修改标签时,需要先将标签删除,再打新标签)
git tag -d vx.x.x
参数d即delete的缩写,意为删除
8.推送git tag版本到远程仓库服务器
git push origin --tags
ps:
推送git tag版本有两种方式,建议直接使用推送全部未推送过的本地标签的方式推送
推送一个本地标签到远程仓库
git push origin
推送全部未推送过的本地标签
git push origin --tags
到这里,Jenkins自动化部署更新,Git部分就完成了所有工作
二、Jenkins自动化部署流程部分
目前我接触的部署都是采用ansible-playbook部署组件,将打包好的项目代码拷贝到服务器上,安装依赖环境,启动项目,对应的每个项目有一个jenkins标签组,标签组下面就是该项目的相关部署维护流水线任务
1.build打包新版本代码工程
- 任务名称:xx_build
- 任务内容:xx代码工程编译任务,按之前设置的git代码仓库中的tag标签编译来打包admin工程
1.点击build这一栏,跳转进入build提交前界面
2.点击Build with Parameters进入build提交界面
3.在选择栏中选择git tag里之前自己推送的git tag版本进行Build提交
2.update更新版本代码工程到指定服务器
- 任务名称:xx_update
- 任务内容:xx代码工程更新任务,按前面build任务编译的版本,以及填入的目标服务器,更新目标服务器的代码工程版本
1.点击update这一栏,跳转进入update提交前界面
2.点击Build with Parameters进入update提交界面
3.手动填写刚刚build的git tag版本,并填入指定服务器IP进行update Build提交
这样就完成了一整套的Jenkins自动化部署服务器及git 提交及git tag标签版本更新流程
写这个最主要还是为了自己熟悉和积累,当然希望能帮助到其他人,有问题也可以在评论区交流
Jenkins自动化部署服务器及git 提交及git tag标签版本更新流程,超详细!的更多相关文章
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...
- Jenkins自动化部署入门详细教程
大纲 1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试: 或者前后端分离后,经常会修改接口,然后重新部署 ...
- Windows环境下实现Jenkins自动化部署
详见:https://blog.csdn.net/Try_harder_every_day/article/details/79170065 Jenkins自动化部署: 几条具体的思路:1.开发人员将 ...
- Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Jenkins 自动化部署上线
转载于互联网 jenkins自动化部署项目,通过jenkins 部署来节省运维时间,不需要手动cp上线及版本发布 Jenkins 自动化部署上线 Jenkins Jenkins 自动化部署上线一.Je ...
- springboot docker jenkins 自动化部署并上传镜像
springboot + docker + jenkins自动化部署项目,jenkins.mysql.redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行 1. ...
- Jenkins自动化部署代码
通过jenkins自动化部署项目代码可以大幅度节省打包上传部署的时间,提高开发测试的工作效率 ========== 完美的分割线 =========== 1.Jenkins是什么 1)Jenkins是 ...
随机推荐
- JavaSE 学习笔记07丨IO流
Chapter 13. IO流 13.1 File类 java.io.File类是文件(file)和目录(文件夹)(directory)路径名(path)的抽象表示,主要用于文件和目录的创建.查找和删 ...
- 公平lock和非公平lock的区别
可以看到区别在于,在lock时和tryAquire时,非公平锁不会去管队列中有没有线程在排队,直接尝试去获取锁,失败之后就和公平锁一样,乖乖去排队. 也就是说发生竞争的场景在于,尚未入队的线程之间和刚 ...
- Android开发环境及Hello World程序
Android的开发需要以下四个工具: 1. JDK 2. Eclipse 3. Android SDK 4. ADT 具体功能: 1. JDK.JDK即Java Development Kit(Ja ...
- Java 生成有序 UUID
UUID.randomUUID() 生成的 UUID 是无序的,如果作为数据主键,不利于索引 Hibernate 的 UUIDHexGenerator.generate() 方法可以生成有序的 UUI ...
- go语言数据类型值--整型和浮点型
一.整型 1.整型的分类: 有符号整型: int8.int16.int32.int64 对应的无符号整型: uint8.uint16.uint32.uint64 uint就是我们熟知的byte类型,i ...
- PyQt(Python+Qt)学习随笔:QDateEdit日期编辑部件和QTimeEdit时间编辑部件
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 Designer输入部件中,Date Edit和T ...
- Python中判断一个中文是否中文数字的方法
Python内置功能非常强大,在字符串内置函数中提供了一个判断字符串是否全数字的方法,而且这个方法不只是简单判断阿拉伯数字,包括中文数字和全角的阿拉伯数字都认识,这个函数就是字符串的isnumeric ...
- Python中的enumerate函数的作用
enumerate函数是将一个可迭代对象中元素,按元素顺序每个增加一个索引值,将其组成一个索引序列,利用它可以同时获得索引和值,这样做的目的是为了将一个可迭代对象中元素组成一个"索引,值&q ...
- PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件的text属性
text属性保存按钮上显示的文字,如果按钮未设置文字则为空字符串.如果文字中包含有与符号('&'),则该按钮会自动设置一个快捷键,快捷键就是'&'后第一个字符,显示时会在该字符下加下划 ...
- 【Vue】 axios同步执行多个请求
问题 项目中遇到一个需求,在填写商品的时候,选择商品分类后,加载出商品分类的扩展属性. 这个扩展属性有可能是自定义的数据字典里的单选/多远. 要用第一个axios查询扩展属性,第二个axios 从第一 ...