XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

Git与Gitlab CI持续集成

2025.04.09

Git是当前非常流行的版本管理工具,很多主流的大公司都在使用,而Gitlab是一款非常流行的Git托管工具,所以Git与Gitlab的结合是必然,而CI、CD是Gitlab必须支持的功能。

CI与CD是什么?

  • CI(Continuous Integration)
    把代码集成到一个共享的仓库,并且每次代码发生变化自动执行构建、测试的流程。
  • CD(Continuous Delivery & Continuous Deployment)
    自动化的把代码发布到一个环境,当代码发生生变化,自动更新发布的环境。

Gitlab CI

GitLab CI是Gitlab托管工具提供对Git的CI/CD的支持,主要有一些特性:

  • 支持多语言、多平台
  • 并行执行,多个构建放在多台机器上执行
  • 实时log,很方便调试和跟踪
  • 支持流水线
  • 版本化管道
  • 支持docker
  • 支持docker镜像仓库
  • 自动扩展
  • 保护变量
  • 多环境支持

GitLab Runner

执行具体的构建是有Gitla Runner来完成,可以注册不同的Runner来完成不同构建,具体参考https://docs.gitlab.com/runner/install/

.gitlab-ci.yml

.gitlab-ci.yml是用来描述构建的过程。 具体的一个例子如下:

stages:
- install_deps
- test
- build
- deploy_test
- deploy_production
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
- dist/
# 安装依赖
install_deps:
stage: install_deps
only:
- develop
- master
script:
- npm install
# 运行测试用例
test:
stage: test
only:
- develop
- master
script:
- npm run test
# 编译
build:
stage: build
only:
- develop
- master
script:
- npm run clean
- npm run build:client
- npm run build:server
# 部署测试服务器
deploy_test:
stage: deploy_test
only:
- develop
script:
- pm2 delete app || true
- pm2 start app.js --name app
# 部署生产服务器
deploy_production:
stage: deploy_production
only:
- master
script:
- bash scripts/deploy/deploy.sh

GitLab CI可以很好支持以Git中心的CI/CD, 特别是对docker支持很好,很灵活,对应容器化的实践是一个很好的选择。
© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB