Ubuntu环境下GitLab持续集成(CI)配置指南
持续集成(CI)是现代软件开发的关键实践,GitLab通过内置的CI/CD工具链简化了自动化流程的实现。以下是在Ubuntu系统上配置GitLab CI的详细步骤,涵盖从环境准备到流程触发的完整流程。
若尚未部署GitLab,需先完成安装(以Ubuntu 22.04为例):
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce
sudo nano /etc/gitlab/gitlab.rb
# 修改以下行(例如:external_url 'http://192.168.1.100')
保存后重新配置并启动服务:sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
访问http://<服务器IP>,通过初始管理员账号(root)登录。GitLab Runner是执行CI/CD任务的代理,需单独安装并注册到GitLab项目。
# 添加Runner官方仓库并安装
curl -L --output /etc/apt/trusted.gpg.d/gitlab.asc https://packages.gitlab.com/gitlab/gitlab-runner/gpgkey
echo "deb https://packages.gitlab.com/gitlab/gitlab-runner/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab-runner.list
sudo apt update
sudo apt install -y gitlab-runner
运行注册命令,按提示输入GitLab实例URL(如http://192.168.1.100)和项目注册令牌(从GitLab项目→Settings→CI/CD→Runners获取):
sudo gitlab-runner register
--executor:选择执行器(推荐shell(本地环境)或docker(隔离环境));--description:Runner描述(如"My Ubuntu Runner");--tag-list:设置标签(如ci,ubuntu),用于匹配项目中的Runner需求。.gitlab-ci.yml是CI/CD流程的核心配置文件,需放置在项目根目录下。以下是一个基础示例(适用于Java/Maven项目):
# 定义CI/CD阶段(按顺序执行)
stages:
- build
- test
- deploy
# 构建阶段:编译项目
build_job:
stage: build
script:
- echo "Building project with Maven..."
- mvn clean package
artifacts:
paths:
- target/*.jar # 保存构建产物(供后续阶段使用)
expire_in: 1 hour # 产物过期时间
# 测试阶段:运行单元测试
test_job:
stage: test
script:
- echo "Running unit tests..."
- mvn test
# 仅在前一阶段成功时执行(默认行为)
# 部署阶段:将产物部署到测试服务器
deploy_job:
stage: deploy
script:
- echo "Deploying to test server..."
- scp target/*.jar user@test-server:/opt/app/
only:
- main # 仅main分支变更时触发
build→test→deploy),Job需归属某一阶段;mvn package);only: - main表示仅main分支变更时触发)。配置完成后,通过以下方式触发流程:
git push origin main),Runner会自动检测.gitlab-ci.yml并执行对应Job;build_job),可查看详细执行日志(用于调试失败问题);docker执行器(修改gitlab-runner register时的--executor参数),并在.gitlab-ci.yml中指定镜像(如image: maven:3.8.6-openjdk-11);cache配置加速构建(如缓存Maven本地仓库):cache:
paths:
- .m2/repository/ # Maven本地仓库路径
.gitlab-ci.yml中。通过以上步骤,即可在Ubuntu环境下完成GitLab CI的基本配置,实现代码的自动化构建、测试与部署。根据项目需求,可进一步扩展流程(如集成Kubernetes、添加代码质量检查等)。