GitLab CI/CD Pipeline 是一套用于设计并实现 GitLab CI/CD 流水线的技能,基于 GitLab Runner 基础设施与容器化执行,自动化构建、测试和部署流程。
用途:适用于 GitLab 仓库的 CI/CD 设置、多阶段构建流水线、Docker 仓库集成、Kubernetes 部署、Review App 部署、缓存优化以及依赖管理等。
主要能力:通过 .gitlab-ci.yml 定义流水线,使用 image 指定容器镜像(示例为 node:18-alpine),通过 variables 设置环境变量(如 DOCKER_DRIVER: overlay2、FF_USE_FASTZIP: "true"),使用 stages 划分阶段(示例包含 lint、test、build、security、deploy-review、deploy-prod),并通过 cache 配置缓存路径(示例为 node_modules/ 与 .npm/)和 cache key(如 ${CI_COMMIT_REF_SLUG})。作业使用 stage 与 script 定义。
使用方式:提供最小工作示例,完整实现需参考 references/ 目录中的参考指南,包含:完整流水线配置、GitLab Runner 配置、Docker 层缓存优化、多项目流水线、Kubernetes 部署(含性能测试阶段与语义化版本发布流水线)。
最佳实践(DO):使用阶段组织流水线流程;为依赖实现缓存;使用产物保存测试报告;设置合适的缓存键;使用 only 与 except 实现条件执行;使用 needs 定义作业依赖;使用 expire_in 清理产物;使用 Docker 获得一致环境;实现安全扫描阶段;为作业设置资源限制;使用合并请求流水线。
应避免(DON'T):在可并行时串行运行测试;不必要地缓存所有内容;无限期保留大型产物;将密钥存储在配置文件中;无必要时运行特权 Docker;跳过安全扫描;忽略流水线失败;在没有适当控制的情况下使用 only: [main]。
限制:资料中未提供具体安装命令、收费与价格信息、平台兼容范围或实际效果数据。