以下是从 新建分支开始,配置 GitLab CI/CD 的完整详细流程,涵盖每个步骤、配置文件路径和具体示例。
1. 新建分支并克隆项目
1.1 在 GitLab 上创建新分支
- 登录 GitLab,进入目标项目页面。
- 依次点击 Repository > Branches。
- 点击右上角 New branch:
- 输入分支名称(如
feature/add-ci
)。 - 从主分支(
main
或master
)创建新分支。
- 输入分支名称(如
- 创建完成后,GitLab 会显示新分支。
1.2 将新分支克隆到本地
- 获取项目的 Git 仓库 URL。
- 在本地克隆项目并切换到新分支:
git clone <git-repo-url> cd <project-directory> git checkout feature/add-ci
2. 在新分支中添加 GitLab CI 配置文件
2.1 创建 .gitlab-ci.yml
文件
-
在项目根目录下创建
.gitlab-ci.yml
文件:touch .gitlab-ci.yml
-
打开
.gitlab-ci.yml
文件并添加以下内容:stages: # 定义流水线的阶段顺序 - build - test - deploy build_job: # 构建阶段的作业 stage: build script: - echo "Building the project..." - mkdir build - echo "Build successful!" > build/status.txt artifacts: paths: # 保存构建结果以供后续作业使用 - build/ test_job: # 测试阶段的作业 stage: test script: - echo "Running tests..." - echo "Tests passed!" deploy_job: # 部署阶段的作业 stage: deploy script: - echo "Deploying the application..." when: manual # 手动触发部署
2.2 提交并推送配置文件
-
将配置文件添加到 Git:
git add .gitlab-ci.yml git commit -m "Add CI configuration"
-
推送到远程分支:
git push origin feature/add-ci
3. 验证 CI/CD 配置是否生效
3.1 查看 Pipeline 状态
- 登录 GitLab,进入项目页面。
- 点击左侧菜单中的 CI/CD > Pipelines。
- 可以看到新的 Pipeline 被触发,包含以下阶段:
- Build 阶段。
- Test 阶段。
- Deploy 阶段。
3.2 查看作业日志
- 点击 Pipeline,查看每个阶段的作业。
- 点击任意作业名称(如
build_job
),查看其详细日志输出:Building the project... Build successful!
4. 修改 CI/CD 配置以支持多分支
为了在不同分支上定义不同的 CI/CD 行为,可以通过 rules
指定触发条件。
4.1 修改 .gitlab-ci.yml
文件
-
在文件中添加以下规则:
stages: - build - test - deploy build_job: stage: build script: - echo "Building the project..." - mkdir build - echo "Build successful!" > build/status.txt rules: # 仅在 main 和 feature/* 分支触发 - if: $CI_COMMIT_BRANCH == "main" - if: $CI_COMMIT_BRANCH =~ /feature\/.*/ test_job: stage: test script: - echo "Running tests..." rules: # 仅在 feature/add-ci 分支触发 - if: $CI_COMMIT_BRANCH == "feature/add-ci" deploy_job: stage: deploy script: - echo "Deploying the application..." when: manual rules: - if: $CI_COMMIT_BRANCH == "main"
-
提交并推送修改:
git add .gitlab-ci.yml git commit -m "Add branch rules for CI" git push origin feature/add-ci
5. 合并分支并触发主分支 Pipeline
5.1 创建 Merge Request
- 登录 GitLab,进入项目页面。
- 点击 Merge Requests > New Merge Request。
- 选择:
- Source Branch:
feature/add-ci
- Target Branch:
main
- Source Branch:
- 填写标题和描述,点击 Create Merge Request。
5.2 合并分支
- 在 Merge Request 页面,确保 CI/CD 流水线成功运行。
- 点击 Merge 按钮,将新分支合并到主分支。
- 合并后,主分支的 CI/CD Pipeline 会自动触发。
6. 高阶示例:实现动态部署
6.1 添加动态环境部署
修改 .gitlab-ci.yml
文件,支持多环境动态部署:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the application..."
- mkdir build
- echo "Build successful!" > build/status.txt
artifacts:
paths:
- build/
test_job:
stage: test
script:
- echo "Running tests..."
rules:
- if: $CI_COMMIT_BRANCH =~ /feature\/.*/
deploy_job:
stage: deploy
script:
- echo "Deploying to $CI_ENVIRONMENT_NAME..."
- echo "Deployment successful!"
environment:
name: $CI_COMMIT_BRANCH # 使用分支名作为环境名
rules:
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_COMMIT_BRANCH =~ /staging/
7. 验证动态部署
-
测试动态部署:
- 推送代码到
staging
或main
分支。 - 查看 Pipeline 页面,确认
deploy_job
作业输出包含环境名。 - 示例日志:
Deploying to staging... Deployment successful!
- 推送代码到
-
手动触发生产部署:
- 在主分支的 Pipeline 页面,点击
deploy_job
的 Play 按钮,手动触发部署。
- 在主分支的 Pipeline 页面,点击
总结
完整操作流程
- 创建新分支:
- 从 GitLab 页面创建新分支,并克隆到本地。
- 配置 CI/CD:
- 在项目根目录创建
.gitlab-ci.yml
文件,添加 CI/CD 配置。
- 在项目根目录创建
- 提交和触发:
- 推送代码到远程分支,验证 Pipeline 是否成功运行。
- 动态控制:
- 使用
rules
配置分支或条件控制不同环境的部署。
- 使用
通过以上步骤,你可以从零开始搭建 GitLab CI/CD 流水线,并支持多分支的动态部署,满足实际开发需求。