GitLab使用示例

devtools/2024/11/24 17:40:50/

以下是从 新建分支开始,配置 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 配置文件

gitlabciyml__30">2.1 创建 .gitlab-ci.yml 文件

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

    touch .gitlab-ci.yml
    
  2. 打开 .gitlab-ci.yml 文件并添加以下内容:

    stages:          # 定义流水线的阶段顺序- build- test- deploybuild_job:       # 构建阶段的作业stage: buildscript:- echo "Building the project..."- mkdir build- echo "Build successful!" > build/status.txtartifacts:paths:        # 保存构建结果以供后续作业使用- build/test_job:        # 测试阶段的作业stage: testscript:- echo "Running tests..."- echo "Tests passed!"deploy_job:      # 部署阶段的作业stage: deployscript:- 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 指定触发条件。

gitlabciyml__104">4.1 修改 .gitlab-ci.yml 文件

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

    stages:- build- test- deploybuild_job:stage: buildscript:- echo "Building the project..."- mkdir build- echo "Build successful!" > build/status.txtrules:           # 仅在 main 和 feature/* 分支触发- if: $CI_COMMIT_BRANCH == "main"- if: $CI_COMMIT_BRANCH =~ /feature\/.*/test_job:stage: testscript:- echo "Running tests..."rules:           # 仅在 feature/add-ci 分支触发- if: $CI_COMMIT_BRANCH == "feature/add-ci"deploy_job:stage: deployscript:- echo "Deploying the application..."when: manualrules:- 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- deploybuild_job:stage: buildscript:- echo "Building the application..."- mkdir build- echo "Build successful!" > build/status.txtartifacts:paths:- build/test_job:stage: testscript:- echo "Running tests..."rules:- if: $CI_COMMIT_BRANCH =~ /feature\/.*/deploy_job:stage: deployscript:- 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 流水线,并支持多分支的动态部署,满足实际开发需求。


http://www.ppmy.cn/devtools/136598.html

相关文章

tdengine学习笔记-建库和建表

目录 建库和建表 创建超级表​ 创建表​ 自动建表​ 创建普通表​ 多列模型 VS 单列模型​ 数据类型映射​ 示例程序汇总​ 在车联网领域的应用 1. 数据模型概述 2. 表结构设计 2.1 静态数据表 2.2 动态数据表 4. 查询数据 4.1 查询单个车辆的数据 4.2 查询多个…

大数据新视界 -- Impala 性能优化:分布式环境中的优化新视野(下)(28 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Docker用法详解

目录 引言 Docker的核心概念 安装Docker 在Ubuntu上安装 步骤1&#xff1a;更新软件包索引 步骤2&#xff1a;安装必要的软件包 步骤3&#xff1a;添加Docker的官方GPG密钥 步骤4&#xff1a;设置稳定版仓库 步骤5&#xff1a;安装Docker Engine 步骤6&#xff1a;启动…

界面控件DevExpress WinForms v24.2新功能预览 - 人工智能(AI)

DevExpress WinForms 拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…

【C++知识总结1】c++第一篇,简单了解一下命名空间是什么

一、C的由来 C语言是一种结构化和模块化的编程语言&#xff0c;它对于处理较小规模的程序非常适用。然而&#xff0c;当面临需要高度抽象和建模的复杂问题&#xff0c;以及规模较大的程序时&#xff0c;C语言就显得不那么合适了。为了应对这种挑战&#xff0c;并在解决软件危机…

离散数学【关系】中的一些特殊关系

在数学中&#xff0c;关系是描述集合之间元素间关系的方式。以下是对一些常见关系的详细分析及举例&#xff1a; 1. 空关系 (Empty Relation) 空关系是指在一个集合中&#xff0c;没有任何元素之间存在关系。即对于集合中的所有元素&#xff0c;空关系都不包含任何有序对。 …

【MyBatis】全局配置文件—mybatis.xml 创建xml模板

文章目录 模板文件配置元素typeAliasessettings 模板文件 创建模板 按照顺序打开【File】–>【settings】–>【Editor】–>【File and Code Templates】&#xff08;或直接搜索&#xff09; <?xml version"1.0" encoding"UTF-8" ?> <…

网络安全设备Bypass

一. 什么是bypass 网络安全设备一般都是应用在两个或更多的网络之间&#xff0c;比如内网和外网之间&#xff0c;网络安全设备内的应用程序会对通过他的网络封包来进行分析&#xff0c;以判断是否有威胁存在&#xff0c;处理完后再按照一定的路由规则将封包转发出去&#xff0c…