GitLab CI 部署
部署环境 Centos7
安装
gitlab-ci-multi-runner
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
yum install gitlab-ci-multi-runner
获取项目的地址、token
- 点进项目
- Setting
- CI/CD
- runner
- Set up a specific Runner manually
设置项目地址、token
gitlab-ci-multi-runner register
Please enter the gitlab-ci coordinator URL: gitlab地址
Please enter the gitlab-ci token for this runner: 项目的token
Please enter the gitlab-ci description for this runner :描述,可以进行修改
Please enter the gitlab-ci tags for this runner (comma separated): runner的标签,需要慎重填写,gitlab CI 配置文件根据标签定位runner
Whether to run untagged builds [true/false]: 询问是否在未加标签的Build上运行 true
Please enter the executor: 询问是否锁定最近项目 true
运行
gitlab-runner restart | start | stop
项目配置
在项目根目录下新建文件:.gitlab-ci.yml(gitlab会自动识别),填入下面的内容
stages:
- deploy
deploy:
stage: deploy # 对应stages的步骤
script: # 执行的命令
- echo "start deploy"
- cd /home/nssas/projects/Visual
- mvn clean package -Dmaven.test.skip=true
- echo "end deploy"
only:
- master # 设置master分支提交的时候触发
tags:
- master # 触发标签为master的runner
运行自动集成
需要确保文件的权限正确,chown gitlab-runner:gitlab-runner /home/nssas/projects/Visual/target/ -R 代码进行提交即可进行自动集成
持续集成的步骤
- 复制主分支用于提交代码测试(CI的触发条件是提交代码,如果失败了那代码就处于异常状态,导致不能允许,当测试分支通过以后合并)
- 检查代码格式是不是符合规范(这个怎么运行这个检查?这种应该放到本地),Alibaba Java Coding Guidelines
- 运行单元测试代码(测试覆盖率这个怎么搞?这种应该放到本地)
- 运行集成测试(脚本实现?复杂的测试放到集成服务器上)
-
部署上线流程(DevOps?生成Docker Image,对Image进行测试?)
-
如果保证测试唯一性,在测试不通过的时候不能提交代码?
- GitLab有可视化的集成监视器吗?