前言:
上两篇文章搭建好Docker Register、GitLab、GitLab Runner后,此次来通过之前用到NetCore项目来实现CICD。
来看之前的项目。依然以连接Mysql容器为实例。本次加入单元测试Api.Tests。
1、编写.gitlab-CI.yml文件(需放到解决方案的根目录)
stages:
- build
- test
- package
- deploy
job1:
stage: build
script:
- dotnet build
job2:
stage: test
script:
- cd Api.Tests
- dotnet test
job3:
stage: package
script:
- cd Api
- docker build -t userapi:test .
- docker tag userapi:test 115.29.149.34:5000/userapi:v1
- docker push 115.29.149.34:5000/userapi:v1
job4:
stage: deploy
script:
- cd Api
- docker stop userapi
- docker rm userapi
- docker run -d -p 8004:3827 --link mysql01:db --name userapi 115.30.149.35:5000/userapi:v1
依次有四个job
job1:编译整个项目
job2: 运行单元测试
job3: 打包api项目成一个镜像。并且推送到部署好的Docker Registry
job4: 运行容器
需要在服务器上提前配置好对应的Mysql容器(参考之前文章)。
2、将项目推送到GitLab
①、登录GitLab ,创建一个新项目
②、将本地项目推送到GitLab
进行我们本地项目根目录,执行以下命令即可。
③、GitLab上进入我们的项目,点击CICD,即可看到我们的job在跑。
④、每次提交都会自动执行这四个Job