Gitlab 之 Windows 环境进行 tomcat 持续集成部署,包含项目打包,备份,部署以及问题
发布日期:2021-06-30 18:35:00
浏览次数:3
分类:技术文章
本文共 2127 字,大约阅读时间需要 7 分钟。
问题:
之前在用 Gitlab 在 windows 上做持续集成时候遇到了问题,也有问一些认识的人,但是他们都表示没听懂没遇到过。
我之前的部署流程:Gitlab-runner 拉取代码 ➡ Ant 打包 ➡ 项目复制到 tomcat 的 webapps 下面 ➡ 最后 startup.bat 启动 结果:Gitlab 的任务无法完成,会一直在进行,可能是因为直接去启用了 startup.bat,由于 startup.bat 启动了项目就不会结束的原因,导致 Gitlab 任务无法结束,最后结果当然只能任务失败,可以看到强行跑了 1h,然后失败了思路:
由此可见传统的部署方式显然是不行的,在偶然下发现了一个有趣的东西解决了我的难处,因此只能使用新的方法来部署
- 把 tomcat 注册为 windows 的一个服务
- 停止 tomcat 服务
- 备份历史项目(我这里的备份是:备份的目录 ➡ 当天的日期 ➡ 项目名-备份时间.war) 因此打包每次历史我都做了保留,按需修改
- Ant 打包项目(为啥不是 maven,因为项目真的太老了没有 maven,按需修改)
- 打包项目放到 webapps 下面
- 启动 tomcat 服务
具体步骤:
安装 gitlab-runner:
PS:可能有人会遇到部署了 gitlab-runner 后怎么跑都报 9009 错误,这个解答在上面这个文章的最下面注册 tomcat 为服务:
# 进入 tomcat 的 bincd D:\tomcat7\bin# 注册 tomcat 为 服务# 格式:service install 服务名# 这个服务名是自定义的,我这是 tomcat7,所以干脆就叫这个service install tomcat7# 启动/停止服务net start/stop tomcat7
由于之前跑过了,就不截图了
.gitlab-ci.yml:
stages:- buildbuild-contain: stage: build script: # 设置变量 # 设置服务名 - $tomcat='tomcat7' # y 年 # M 月 # d 日 # h 小时(12小时制) # H 小时(24小时制) # m 分钟 # s 秒 # 获取年月日 - $ymd=Get-Date -Format 'yyyyMMdd' # 获取时分秒 - $hms=Get-Date -Format 'HHmmss' # 判断如果服务处于运作状态,则停止 tomcat 服务 - if ((Get-Service $tomcat).status -eq 'Running') {Stop-Service $tomcat} # 备份历史项目 # 判断文件夹不存在,不存在则创建当天带年月日的文件夹 - if (-not (Test-Path D:\测试库备份\backup\$ymd)) {New-Item -path D:\测试库备份\backup\$ymd -type directory} # 备份文件 - Copy-Item D:\tomcat7\webapps\ldfw.war D:\测试库备份\backup\$ymd\ # 对备份文件重命名带上后缀时分秒 - Rename-Item D:\测试库备份\backup\$ymd\ldfw.war -NewName ldfw-$hms.war # 判断文件夹存在,存在则删除文件 - if (Test-Path D:\tomcat7\webapps\ldfw) {Remove-Item -Path D:\tomcat7\webapps\ldfw -Force -Recurse -Confirm:$false} - if (Test-Path D:\tomcat7\webapps\ldfw.war) {Remove-Item -Path D:\tomcat7\webapps\ldfw.war -Force -Recurse -Confirm:$false} #进入 ant/bin - cd D:\apache-ant-1.10.5\bin # 调用 ant 打包项目 - ant -f $CI_PROJECT_DIR\build.xml # 复制文件到 webapp 下面 - Copy-Item $CI_PROJECT_DIR\ldfw.war D:\tomcat7\webapps # 判断如果服务处于停止状态,则启动 tomcat 服务 - if ((Get-Service $tomcat).status -eq 'Stopped') {Start-Service $tomcat} only: # 对应的分支,走此分支才执行 - test-sit tags: # 注册的 gitlab-runner - runner-test
附带 Ant 使用:
结果:
转载地址:https://linjinp.blog.csdn.net/article/details/100191450 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月17日 06时07分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
软件质量的8个特性
2019-04-30
应届渣渣前端的艰难求职之路
2019-04-30
2021年不可错过的17种JS优化技巧(一)
2019-04-30
月薪15~20k的前端面试问什么?
2019-04-30
在 Vue 中用 Axios 异步请求API
2019-04-30
mysql——介绍及安装与基本用法
2019-04-30
MySQL数据库之索引
2019-04-30
MYSQL——事务操作+视图+存储引擎
2019-04-30
Mysql——完全备份+增量备份+备份恢复
2019-04-30
MySQL进阶查询(SELECT 语句高级用法)
2019-04-30
Mysql 之主从复制
2019-04-30
LVS负载均衡------NAT模式
2019-04-30
squid代理-----透明代理模式
2019-04-30
squid代理介绍----ACL控制应用+sarg日志分析+反向代理
2019-04-30
redis集群之主从模式+哨兵模式
2019-04-30
JavaScript原生开关灯效果
2019-04-30
企业邮箱如何申请注册,邮箱申请如何免费注册?
2019-04-30
微信企业邮箱,手机邮箱格式地址怎么写?
2019-04-30