Gitlab-CI 介绍
Gitlab-CI 是 Gitlab 提供的一个服务,该服务为项目开发提供了自动化构建、测试和部署的能力。Gitlab-CI 可以在项目每次提交后触发配置好的自动化工作流程,例如在每次提交代码后对代码进行测试同时打包代码发布(持续集成)。Gitlan-CI 方便了提交代码后的代码测试、构建和部署,提高了代码交付的效率。
Gitlab-CI 的使用
从 Gitlab 8.0 版本开始 Gitlab-CI 已经被集成在 Gitlab 中,所以可以直接使用。在 Gitlab 上的项目使用 Gitlab-CI,只需要做两件事:
- 在项目的根目录下添加
.gitlab-ci.yml
文件 - 配置 gitlab-runner
之后只要推送代码,就可以在 Gitlab 的 CI/CD 菜单中看到 Gitlab-CI 的运行情况。
创建 .gitlab-ci.yml 文件
.gitlab-ci.yml 文件描述了需要 gitlab-ci 执行的自动化操作,每当提交代码之后,gitlab-ci 就会检查该文件然后根据该文件内容在 Runners 中执行相关操作。该文件是一个 YAML 文件。下面是一个 .gitlab-ci.yml 文件的实例:
1 | before_script: # 每个脚本执行前都要执行 |
创建完成后,将该文件添加到项目的根目录并上传到 gitlab 上:
1 | git add .gitlab-ci.yml |
此时可以在 gitlab 的 WEB 页面看到刚才提交触发的构建,但是目前还没有配置 Runner 所以该构建处于 pending 状态(在 WEB 界面会看到一个暂停的小标记),接下来需要配置Runner。
配置 gitlab-runner
Gitlab-CI 使用 gitlab-runner 执行 .gitlab-ci.yml 配置的脚本,是脚本的执行器。使用时首先需要安装 gitlab-runner ,然后在 Gitlab 的 WEB 界面对 Runner 进行配置和分配。
本文使用 Docker 安装 gitlab-Runner,首先使用下面命令拉取 gitlab-runner 的镜像:
1 | sudo docker pull gitlab/gitlab-runner |
然后添加 gitlab-runner 的容器:
1 | sudo docker run -d --name gitlab-runner --restart always \ |
注册 Runner
1 | sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register |
注册过程参考 gitlab-runner 注册
最后运行下面命令启动
1 | sudo docker exec -it gitlab-runner gitlab-ci-multi-runner install |
此时在 gitlab WEB 界面可以看到 Runner正常运行 (Runner 旁边有绿色的灯亮起)
完成上述步骤后,只要进行代码提交, gitlab 就会运行 runner 执行 .gitlab-ci.yml 中设置的 jobs。
参考资料
Getting started with GitLab CI/CD
Docker搭建自己的Gitlab CI Runner
Continuous Integration, Delivery, and Deployment with GitLab