1、持续集成(Continuous Integration)
持续集成指的是频繁的将代码集成到主干,每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,它的好处主要有两个:
快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易;
防止分支大幅偏离主干。如果不经常集成,很容易导致集成难度变大,以至于难以集成。
从8.0
版开始,GitLab
持续集成(CI)完全集成到GitLab
本身,它还具有持续部署和持续交付功能,可用于构建、测试和部署你的应用程序。下面是GitLab CI/CD
流程图。
那么怎样让GitLab CI工作起来呢?总结起来就两条:
将.gitlab-ci.yml文件添加到远程仓库的根目录;
将GitLab项目配置为使用Runner
设置好这些后,你每次push代码到Git仓库,Runner都会自动触发CI pipeline,你可以在项目的Pipelines页面下。如下图所示:
如果一切运行正常,你可以看到绿色复选标记,这样你就可以在查看代码之前轻松查看任何提交是否导致测试失败。
3、.gitlab-ci.yml
那么.gitlab-ci.yml是什么,怎么创建呢?下面就来了解一下。
.gitlab-ci.yml文件配置CI对项目执行的操作,它告诉GitLab runner该做什么。它位于存储库的根目录中,你代码的每次提交,GitLab都会查找.gitlab-ci.yml这个文件,并根据这个文件的内容,在Runner上启动你提交的工作。默认情况下,它运行一个包含三个stage的管道:build,test,deploy。你不需要使用所有三个stage,没有工作的stage将会被忽略。
4、创建.gitlab-ci.yml文件
.gitlab-ci.yml是一个YAML文件,所以你必须特别注意缩进。始终使用空格键,而不是Tab键。
你需要在你仓库的根目录下创建一个名为.gitlab-ci.yml
的文件,下面是一个我创建的HelloWorld的SpringBoot测试项目编写的.gitlab-ci.yml文件。
stages:
- build
- test
- deploy
build_maven:
stage: build
script:
- echo "build maven....."
- echo "mvn clean"
- echo "done"
test_springboot:
stage: test
script:
- echo "run java test....."
- echo "java -test"
- echo "done"
deploy_springboot:
stage: deploy
script:
- echo "deploy springboot...."
- echo "run mvn install"
- echo "done"
上面的配置主要做的件事:
在每个阶段完成时输出测试信息(以build阶段的输出信息为例,见下图)