运行环境:
私服gitlab,想使用gitlab的ci/cd自动打包,不需要将打好的包部署到远程服务器而是保存在本地的,可以在本地安装gitlab-runner,打好的包直接在本地生成
本地是window环境
1 本地安装maven
https://maven.apache.org/download.cgi
maven 的安装需要依赖 jdk 的安装,所以必须先安装完成 jdk 且配置好 jdk 环境变量后在进行 maven 的安装!!
解压好直接配置环境变量
3 gitlab-runner安装注册
window版gitlab-runner下载地址:
Install GitLab Runner on Windows | GitLab
管理员身份运行 cmd
gitlab-runner.exe install
注册到指定的 gitlab
gitlab-runner.exe register
注册需要的地址和token从gitlab控制台获取
注册成功可以在这里看到
4 编写打包脚本.gitlab-ci.yml
在maven项目的跟目录下新建.gitlab-ci.yml,因为不需要打包后还放入线上容器运行,所以只需要一个package步骤就好,将包输出到指定目录并添加上时间戳
- 如果要修改输出目录请修改代码中的 D:/output/
- 如果要修改打包分支请修改 only
- 如果要指定mvn本地仓库,请修改 Dmaven.repo.local
stages:
- package
build:
stage: package
only:
- develop
script:
- $timestamp = Get-Date $env:CI_COMMIT_TIMESTAMP -Format 'yyyyMMddHHmm'
- $newPackageName = "dot$timestamp.tar"
- mvn package '-Dmaven.test.skip=true' '-Dmaven.repo.local=D:\workspase\repository'
- cp webapp/target/*.tar D:/output/
- cd D:/output
- mv webapp-bin.tar $newPackageName
artifacts:
paths:
- D:/output/*.tar
5 坐等自动打包
提交develop分支时,可以在gitlab查看到打包进度
只需要静静等待,打包完成即可在指定目录找到
6 可能会遇到的坑
- 6.1 gitlab-runner 安装目录下的config.toml 可以指定运行的方式,如果powershell不支持可能是没写全
executor = "shell"
shell = "powershell"
- 6.2 如果打包失败有先查看失败日志
打包失败的原因大致有以下几种情况,逐一排查:
1,网络问题,代码没有拉取到,请确认网页能否正常打开gitlab
2, gitbal-runner没启动,可以在window的服务中查看gitlab-runner服务是否开启
3,代码问题,可能多个开发人员功能冲突未解决,联系最后一次提交到develop的开发人员