GitLab使用示例

发布于:2024-11-28 ⋅ 阅读:(18) ⋅ 点赞:(0)

以下是从 新建分支开始,配置 GitLab CI/CD 的完整详细流程,涵盖每个步骤、配置文件路径和具体示例。


1. 新建分支并克隆项目

1.1 在 GitLab 上创建新分支

  1. 登录 GitLab,进入目标项目页面。
  2. 依次点击 Repository > Branches
  3. 点击右上角 New branch
    • 输入分支名称(如 feature/add-ci)。
    • 从主分支(mainmaster)创建新分支。
  4. 创建完成后,GitLab 会显示新分支。

1.2 将新分支克隆到本地

  1. 获取项目的 Git 仓库 URL。
  2. 在本地克隆项目并切换到新分支:
    git clone <git-repo-url>
    cd <project-directory>
    git checkout feature/add-ci
    

2. 在新分支中添加 GitLab CI 配置文件

2.1 创建 .gitlab-ci.yml 文件

  1. 在项目根目录下创建 .gitlab-ci.yml 文件:

    touch .gitlab-ci.yml
    
  2. 打开 .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 提交并推送配置文件

  1. 将配置文件添加到 Git:

    git add .gitlab-ci.yml
    git commit -m "Add CI configuration"
    
  2. 推送到远程分支:

    git push origin feature/add-ci
    

3. 验证 CI/CD 配置是否生效

3.1 查看 Pipeline 状态

  1. 登录 GitLab,进入项目页面。
  2. 点击左侧菜单中的 CI/CD > Pipelines
  3. 可以看到新的 Pipeline 被触发,包含以下阶段:
    • Build 阶段。
    • Test 阶段。
    • Deploy 阶段。

3.2 查看作业日志

  1. 点击 Pipeline,查看每个阶段的作业。
  2. 点击任意作业名称(如 build_job),查看其详细日志输出:
    Building the project...
    Build successful!
    

4. 修改 CI/CD 配置以支持多分支

为了在不同分支上定义不同的 CI/CD 行为,可以通过 rules 指定触发条件。

4.1 修改 .gitlab-ci.yml 文件

  1. 在文件中添加以下规则:

    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"
    
  2. 提交并推送修改:

    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

  1. 登录 GitLab,进入项目页面。
  2. 点击 Merge Requests > New Merge Request
  3. 选择:
    • Source Branchfeature/add-ci
    • Target Branchmain
  4. 填写标题和描述,点击 Create Merge Request

5.2 合并分支

  1. 在 Merge Request 页面,确保 CI/CD 流水线成功运行。
  2. 点击 Merge 按钮,将新分支合并到主分支。
  3. 合并后,主分支的 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. 验证动态部署

  1. 测试动态部署

    • 推送代码到 stagingmain 分支。
    • 查看 Pipeline 页面,确认 deploy_job 作业输出包含环境名。
    • 示例日志:
      Deploying to staging...
      Deployment successful!
      
  2. 手动触发生产部署

    • 在主分支的 Pipeline 页面,点击 deploy_jobPlay 按钮,手动触发部署。

总结

完整操作流程

  1. 创建新分支
    • 从 GitLab 页面创建新分支,并克隆到本地。
  2. 配置 CI/CD
    • 在项目根目录创建 .gitlab-ci.yml 文件,添加 CI/CD 配置。
  3. 提交和触发
    • 推送代码到远程分支,验证 Pipeline 是否成功运行。
  4. 动态控制
    • 使用 rules 配置分支或条件控制不同环境的部署。

通过以上步骤,你可以从零开始搭建 GitLab CI/CD 流水线,并支持多分支的动态部署,满足实际开发需求。