ubuntu gitlab持续集成方法
导读:Ubuntu环境下GitLab持续集成(CI)实施方法 1. 准备工作:确保GitLab环境正常 在配置CI之前,需确保Ubuntu服务器上已安装并运行GitLab。若未安装,可通过以下命令快速部署(以Ubuntu 22.04为例): #...
Ubuntu环境下GitLab持续集成(CI)实施方法
1. 准备工作:确保GitLab环境正常
在配置CI之前,需确保Ubuntu服务器上已安装并运行GitLab。若未安装,可通过以下命令快速部署(以Ubuntu 22.04为例):
# 更新系统并安装依赖
sudo apt update &
&
sudo apt install -y curl openssh-server ca-certificates tzdata perl
# 添加GitLab官方仓库并安装
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce
# 配置GitLab外部URL(替换为你的服务器IP或域名)
sudo vim /etc/gitlab/gitlab.rb
# 修改以下行(取消注释并替换URL)
external_url 'http://your_server_ip'
# 重新配置并启动GitLab
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
访问http://your_server_ip登录GitLab,完成初始设置。
2. 安装GitLab Runner(CI任务执行器)
GitLab Runner是负责执行.gitlab-ci.yml中定义任务的组件,需单独安装并注册到GitLab实例。
2.1 安装GitLab Runner
推荐使用Docker安装(轻量且易管理):
# 拉取GitLab Runner镜像并启动容器
docker run -d --name gitlab-runner \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \ # 允许Runner使用Docker
-v /srv/gitlab-runner/config:/etc/gitlab-runner \ # 持久化配置
gitlab/gitlab-runner:latest
验证容器运行状态:
docker ps
# 应看到名为"gitlab-runner"的容器处于"Up"状态
2.2 注册GitLab Runner
- 获取注册信息:登录GitLab项目页面,进入
Settings → CI/CD → Runners,复制URL和Token(如https://gitlab.com和b6ac044b57cbb22073b95dd384e517)。 - 执行注册命令:
docker exec -it gitlab-runner gitlab-runner register \
--non-interactive \
--executor "docker" \ # 使用Docker作为执行器(适合隔离环境)
--docker-image alpine:latest \ # 默认镜像(可根据项目需求修改,如`node:18`、`python:3.9`)
--url "http://gitlab.com" \ # 替换为你的GitLab实例URL
--registration-token "YOUR_REGISTRATION_TOKEN" \ # 粘贴复制的Token
--description "ubuntu-docker-runner" \ # Runner名称(自定义)
--tag-list "ubuntu,docker" \ # 标签(用于筛选Runner)
--run-untagged="true" \ # 允许执行未打标签的Job
--locked="false" # 不锁定Runner(允许其他项目使用)
注册成功后,Runner会出现在GitLab项目的Runners页面,状态为Active。
3. 配置.gitlab-ci.yml文件(CI/CD流程定义)
.gitlab-ci.yml是GitLab CI的核心配置文件,位于项目根目录,用于定义阶段(Stages)、**任务(Jobs)**及执行逻辑。
3.1 基础示例(通用流程)
以下是一个涵盖构建→测试→部署的基础配置(以Node.js项目为例):
stages:
- build # 构建阶段:编译代码、安装依赖
- test # 测试阶段:运行单元测试、集成测试
- deploy # 部署阶段:将应用发布到服务器
# 构建任务
build_job:
stage: build
script:
- echo "Installing dependencies..."
- npm install
- echo "Building project..."
- npm run build
artifacts: # 定义产物(供后续Job使用)
paths:
- node_modules/
- build/
# 测试任务(依赖build_job的产物)
test_job:
stage: test
script:
- echo "Running unit tests..."
- npm test
- echo "Running lint check..."
- npm run lint
rules:
- if: $CI_COMMIT_BRANCH == "master" # 仅在master分支触发
# 部署任务(仅master分支触发)
deploy_job:
stage: deploy
script:
- echo "Deploying to production server..."
- scp -r build/* user@remote_server:/var/www/html # 将构建产物复制到远程服务器
only:
- master # 限制触发分支
3.2 高级配置(可选)
- 缓存依赖:加速构建(如缓存
node_modules):cache: paths: - node_modules/ - 环境变量:将敏感信息(如API密钥、服务器密码)存储在GitLab的
Settings → CI/CD → Variables中,在YAML中通过$VAR_NAME引用。 - 条件执行:通过
rules或only/except控制Job触发条件(如仅在特定分支、标签或MR时运行)。
4. 触发CI/CD流水线
将.gitlab-ci.yml文件提交到GitLab仓库,Runner会自动检测并执行流水线:
# 添加文件到本地仓库
git add .gitlab-ci.yml
# 提交并推送至远程仓库(如master分支)
git commit -m "Add GitLab CI configuration"
git push origin master
流水线状态可在GitLab项目页面的CI/CD → Pipelines查看,点击具体流水线可查看每个Job的日志和详情。
5. 监控与调试
- 查看流水线状态:通过
CI/CD → Pipelines查看所有流水线的运行状态(成功/失败/挂起)。 - 查看Job日志:点击具体流水线中的Job(如
build_job),可查看实时日志和错误信息(用于快速定位问题)。 - 手动触发:在
CI/CD → Pipelines页面点击Run pipeline,可选择分支或提交,手动触发流水线(适合测试或紧急发布)。
通过以上步骤,即可在Ubuntu环境下实现GitLab的持续集成,自动化完成代码构建、测试和部署流程。根据项目需求,可进一步扩展.gitlab-ci.yml的功能(如集成Docker镜像构建、通知系统等)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu gitlab持续集成方法
本文地址: https://pptw.com/jishu/735364.html
