GitLab CI
workflow
eventsGitLab 自动打包与部署
什么是Gitlab CI
GitLab 平台内置了功能强大且高度可定制的 CI/CD 工具,使开发团队能够无需额外集成第三方工具即可实现完整的CI/CD解决方案。这一功能的核心是配置文件 .gitlab-ci.yml,它作为CI/CD流程的定义文件,能够灵活、精确地编排整个持续集成与持续交付流程。每次代码推送至仓库时,系统会自动触发预定义的Pipeline 流程,并根据预设规则自动选取合适的 Runner 执行具体 Job 作业,从而实现自动化构建、测试、部署等复杂操作的无缝衔接。
1. 准备
- GitLab 仓库
- 一台用于运行 Gitlab Runner 的服务器, 提前安装好 Docker
- Habor 用户,Docker 镜像注册中心
2.配置 .gitlab-ci.yml
Gitlab CI 使用 YAML 语法定义工作流,位于仓库根目录,文件名为固定为.gitlab-ci.yml。
2. 注册一个 GitLab Runner
GitLab Runner 用于执行在 .gitlab-ci.yml 中定义脚本(如代码编译、测试、部署等),需要独立于GitLab 运行。这里使用Docker 安装 GitLab Runner
bash
mkdir -p /data/docker/gitlab-runner
docker run -d --name gitlab-runner --restart always \
-v /data/docker/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest执行 docker container stats gitlab-runner命令,查看容器运行状态
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
42fc43f8a098 gitlab-runner 0.27% 30.09MiB / 31.26GiB 0.09% 176MB / 790MB 9.34MB / 0B 13接下来,需要将 Gitlab Runner 注册到 GitLab
找到 CI/CD Runners菜单,点击 Register a group runner ,复制 Registration token,然后回到 Gitlab Runner 服务器,运行下述命令
docker exec -it gitlab-runner gitlab-runner register --name itas-runner --url http://192.168.80.167/ --registration-token GR1348941JS8VySpeCur_KvGrb7Dp --maintenance-note yonghao.wang@ca-css.com --executor docker --docker-image alpine:latest参数说明:
--url http://192.168.80.167/指定 Gitlab 服务地址--registration-token GR1348941JS8VySpeCur_KvGrb7Dp上一步获得的 token--executor docker指定 executor 类型 ,这里表示该 Runner 可以用于执行 docker 任务,--docker-image alpine:latest如.gitlab-ci.yml中未指定 image 时,将使用的默认镜像。
回到CI/CD Runners页面,可以看到新注册的 Runner
如果配置有误,下述命令可以注销后
docker exec -it gitlab-runner gitlab-runner unregister --name itas-runner