**先对本例centos7运行环境做一下简单的说明,
软件:已安装gitlab,添加了java项目,现在对项目做一个ci的持续集成,由于中间出现了很多异常,现记录以备查看,如果可以帮助到有需要的人,那就更好啦。以后如果有时间也会更新之前搭建gitlab遇到的坑。
1.添加 .gitlab-ci.yml 文件
最好是浏览下,这个模板的内容,便于理解和优化你的.gitlab-ci.yml。
但是,,嗯,英文很长,,,那就再hi姐看下面的模板,写的不好但是基本满足需求
2…gitlab-ci.yml 简单示例
variables:
project: “xhcar_1.1.1” #定义变量,方柏霓后面重命名下载编译包的名称
targets: xhCarData.war #定义变量,打出的war的名字 (方便将脚本迁移到其他项目)
image: maven:3.5.2-jdk-8 #这个好像是docker的才需要
stages:
- build
- package
- deploy
#编编译
build: #job,每次提交都会触发,可以看到自己每次提交是否都通过编译
stage: build
tags:- java # gitlab的runner叫java (添加runner的时候,写的名称)
script: # 这一块是要执行的命令,在power shell 里可以运行的命令才可 以在这里运行,不是cmd里,大家注意哦 - chcp 850 #这样打印出来的信息可以识别中文不是乱码
- echo “-----------------------仅编译-------------------------------”
- mvn clean
- mvn compile
#推送包到release分支
upload:
when: manual #job不会自动执行需要手动,这样不会每次打出来包并上传
stage: deploy
tags: - java
only: - master
script: - chcp 850
- echo “-----------------------编译上传---------------------------”
- git config --global user.email “xhcode@163.com”
- git config --global user.name “xhcode”
- mvn package
- move .\target\xhCarData.war . #将生成的war包复制到根目录,这样压缩包不会有target目录
artifacts:
name: “KaTeX parse error: Expected group after '_' at position 10: {project}_̲{CI_COMMIT_REF_NAME}_${CI_PIPELINE_ID}” #重命名下载的包的名称
paths: - “$targets”
expire_in: 4 week #这个包子啊gilab server可以保留4周
- java # gitlab的runner叫java (添加runner的时候,写的名称)
3.调试时遇到的问题,在2中的脚本中基本都有体现
3.1注册runner时,未增加power shell,导致什么命令都提示
‘$testvar’ is not recognized as an internal or external command,
operable program or batch file.
用root登陆–切换到管理页面–runner—复制保留下框里的ip 地址和toke
下载gitlab-ci-multi…exe 在目录下打开cmd,记得使用管理员权限
执行:gitlab-ci-multi-runner-windows-amd64.exe register
输入:保存的IP地址
输入:token
描述:Java ( 你喜欢就好,突出runner时编译java的。或者部署哪个服务的)
标签:java(突出runner时编译java的,或者,,,)
执行:shell
执行后看到成功提示目录下,生成一个文件:config.toml 编辑:
加入一行:
shell = “powershell”
再执行:
gitlab-ci-multi-runner-windows-amd64.exe install /start 这样就把runner注册为服务并启动,有的也可以自启动不需要这一步。
到gitlab页面刷新:看到那你注册成功的runner
点击上图 框中的标签,下图
启用你要使用该runner ,构建的项目
3.2 'ci流水线打印乱码
ERROR: Job failed: exit status 9009
解决方案:
再script模块加入
- chcp 850 #这样打印出来的信息可以识别中文不是乱码
- 3 有空再写