HOW - 用腾讯蓝盾部署一个 Web 应用

一、介绍

根据官方介绍:

持续交付强调更快、更可靠、低成本的自动化软件交付,蓝盾流水线(Pipeline)提供可视化、一键式部署服务,和持续集成无缝集成,支持并行部署。

具体功能:
请添加图片描述

二、项目、流水线和 Stage

在腾讯蓝盾(Tencent BlueShield)中,项目流水线Stage是实现持续集成和持续部署的核心概念。了解这些概念可以帮助你更好地配置和管理你的 CI/CD 流程。

1. 项目(Project)

项目是腾讯蓝盾中的基本单位,用于组织和管理 CI/CD 流程。一个项目通常对应于一个软件开发的项目,里面包含了所有相关的代码、构建配置和部署设置。

  • 创建项目:在腾讯蓝盾控制台中,你可以创建一个新的项目,填写项目名称、描述等基本信息。
  • 项目配置:在项目中,你可以配置代码仓库、构建和部署任务等。
  • 管理:在项目中,你可以查看构建和部署历史记录,配置通知,设置权限等。

2. 流水线(Pipeline)

5 分钟读懂 BK-CI 流水线

流水线是腾讯蓝盾中用于定义 CI/CD 流程的结构。一个流水线由多个阶段(Stage)组成,描述了从代码提交到生产环境的整个流程。

  • 创建流水线:在项目中,你可以创建多个流水线。每个流水线都可以有不同的构建和部署配置。
  • 配置流水线:在流水线配置中,你可以设置触发条件、定义构建和部署步骤、配置流水线参数等。
  • 执行流水线:每次代码提交或手动触发时,流水线会按照定义的步骤自动执行。

更多具体的实践内容可以阅读:创建你的第一条流水线

3. Stage(阶段)

Stage(阶段)是流水线中的一个步骤,用于定义特定的 Job 作业。可以说,一个 Stage 由多个 Job 组成,一个 Job 由多个 Task(插件)组成。

具体关系图示如下:
请添加图片描述

一个流水线通常包含多个阶段,每个阶段执行特定的操作,例如构建、测试、部署等。

  • 定义阶段:在流水线中,你可以定义多个阶段,每个阶段可以包含多个任务。
  • 阶段任务:每个阶段中的任务可以包括构建代码、运行测试、部署应用、发送通知等。
  • 阶段配置:你可以为每个阶段配置具体的操作步骤,设置条件和参数。

示例:配置一个简单的 CI/CD 流程的基本步骤

假设你有一个 React 应用,希望配置一个流水线来自动构建和部署应用。以下是配置流程的基本步骤:

  1. 创建项目

    • 登录腾讯蓝盾控制台。
    • 创建一个新项目,命名为“ReactApp”或其他合适的名称。
  2. 配置流水线

    • 在项目中,选择 流水线 标签,点击 创建流水线
    • 命名流水线,例如“DeployToProduction”。
    • 设置流水线触发条件,比如在代码推送到 main 分支时触发。
  3. 定义阶段

    • 在流水线配置中,添加一个新的阶段,例如“Build and Deploy”。
    • 在这个阶段中,配置具体的任务:
      • 构建任务
        • 使用 Node.js 环境,运行 npm installnpm run build 命令来构建应用。
      • 部署任务
        • 使用 FTP、SFTP、SSH 或其他方式将构建文件上传到目标服务器。
  4. 配置阶段任务

    • 构建任务:在构建阶段配置以下步骤:
      npm install
      npm run build
      
    • 部署任务:在部署阶段配置以下步骤(假设使用 SSH 部署):
      rsync -avz --delete ./build/ user@your-server-ip:/path/to/your/deployment/directory
      
  5. 保存并执行流水线

    • 保存流水线配置。
    • 手动触发流水线或等待自动触发,检查构建和部署过程是否正常。

总结

  • 项目:用于组织和管理 CI/CD 流程。
  • 流水线:定义了从代码提交到生产环境的整个 CI/CD 流程,由多个阶段组成。
  • Stage(阶段):流水线中的具体步骤,执行特定的任务,如构建、测试和部署。

通过配置这些元素,你可以实现自动化的构建、测试和部署过程,从而提高开发效率和软件质量。如果需要更详细的操作说明,可以参考腾讯蓝盾的官方文档或获取腾讯云的技术支持。

三、一条完整的流水线包括什么 Stage

在持续集成(CI)和持续部署(CD)流程中,一个完整的流水线通常包括多个阶段(Stage),每个阶段包含多个任务。流水线的设计可以根据具体项目的需求进行调整,但一般来说,一个典型的流水线会包含以下几个主要阶段:

1. 源代码管理(Source Code Management)

目的:获取最新的代码。

  • 任务
    • 从代码仓库拉取最新代码(通常是 git pullcheckout)。
    • 确保工作目录是干净的,避免旧的构建文件影响当前构建。

2. 构建(Build)

目的:编译源代码、生成可执行文件或构建产物。

  • 任务
    • 安装依赖:安装项目所需的所有依赖项。例如,对于 Node.js 项目,运行 npm installyarn install
    • 编译/打包:运行构建命令。例如,对于 React 应用,运行 npm run build 以生成生产环境的静态文件。
    • 生成报告:如果需要,可以生成构建报告。

3. 静态分析(Static Analysis)

目的:分析代码质量,发现潜在问题。

  • 任务
    • 代码检查:运行代码风格检查工具,如 ESLint、Prettier。
    • 安全扫描:扫描代码中可能存在的安全漏洞。
    • 依赖检查:检查项目依赖是否存在已知漏洞。

4. 测试(Test)

目的:运行各种测试,确保代码质量和功能正确。

  • 任务
    • 单元测试:运行单元测试,验证代码的各个单元是否按预期工作。例如,使用 npm test
    • 集成测试:运行集成测试,验证多个组件之间的交互。
    • 端到端测试:运行端到端测试,模拟真实用户行为测试应用的整体功能。
    • 测试报告:生成测试报告和覆盖率报告。

5. 部署(Deploy)

目的:将构建产物部署到目标环境中。

  • 任务
    • 上传文件:将构建产物上传到目标服务器。可以使用 FTP、SFTP、SSH、Docker 等方式。
    • 更新环境:更新服务器上的应用,可能需要重启服务或容器。
    • 配置管理:更新配置文件或环境变量。

6. 通知和报告(Notification & Reporting)

目的:通知相关人员构建和部署的状态。

  • 任务
    • 发送通知:将构建和部署结果发送到 Slack、邮件、或其他通知系统。
    • 生成报告:生成构建和测试的总结报告。

7. 清理(Cleanup)

目的:清理构建过程中产生的临时文件和资源。

  • 任务
    • 删除临时文件:删除构建过程中生成的临时文件和缓存。
    • 归档构建产物:将构建产物归档,备份或清理旧的构建版本。

总结

一个完整的 CI/CD 流水线通常包括以下几个阶段:

  1. 源代码管理:获取最新代码。
  2. 构建:编译和打包代码。
  3. 测试:运行单元测试、集成测试和端到端测试。
  4. 静态分析:分析代码质量和安全性。
  5. 部署:将构建产物部署到目标环境。
  6. 通知和报告:发送构建和部署状态通知。
  7. 清理:清理临时文件和资源。

你可以根据项目的具体需求调整这些阶段和任务。

四、变量配置(前置 Stage)

在流水线执行过程中,前置变量通常用于以下几个方面:

  • 配置:根据环境配置应用的参数。例如,数据库连接字符串、API 密钥等。
  • 安全:使用秘密管理工具来存储和访问敏感信息。确保敏感信息不被泄露。
  • 条件执行:根据变量的值决定是否执行某些任务或阶段。例如,只在特定环境下部署应用。

具体可阅读:使用变量来控制流水线

五、产出物

执行一次流水线构建,会有很多产出物出现,我们按照下面的维度进行了分类:

  • 构件(Artifact) :顾名思义,就是编译或打包之后产生的二进制文件,包括镜像、版本压缩包、IPA 包、APK 包等等,利用插件你可以将构件归档到指定的仓库中。

  • 代码检查报告:如果你的流水线中包含了 CodeCC 代码检查任务插件,那么你的流水线就会多出这样一个代码检查报告页面,该页面数据会随着你的流水线构建执行而不断刷新。

  • 测试报告

  • 安装程序

  • 版本日志

  • 文档

如果想在不同 Job 之间共享产出物,需要用到【Upload】和【Download】插件。

  • 15
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值