鲲鹏 DevKit 持续集成部署实践:从零搭建 CI/CD 流水线

前言

随着项目规模不断扩大,构建一条简单、稳定、自动化的 CI/CD 流水线变得越来越重要。鲲鹏 DevKit 在这一方面提供了完整的工具链支持,从代码检查到构建、测试、部署都有覆盖,让我们能够在国产化环境中快速搭建可靠的持续交付体系。我将结合实际使用经验,介绍如何基于 DevKit 构建一条完整、高效的 CI/CD 流水线,并给出相关配置示例与最佳实践。

在进行开发的过程中可以参考官网给出的资料快速安装和入门:

https://www.hikunpeng.com/document/detail/zh/kunpengdevps/overview/index.html

本次实验是在华为云开发者空间上进行的,点击进入https://developer.huaweicloud.com/space/devportal/platform/devEnvironment?tab=cloud_desktop&ticket=ST-8160487-KjIyCRlHrKoolUkIbqrfPb59-sso&locale=zh-cn

DevKit CI/CD 流水线概览

鲲鹏 DevKit 提供了完整的 CI/CD 流水线工具链,支持代码提交、自动构建、测试、部署等全流程。

devkit pipeline --info 是鲲鹏 DevKit CI/CD 流水线的核心查询命令,能一键输出流水线的配置结构、关联组件与运行规则,是开发者快速熟悉流水线、排查配置问题的必备工具。

使用devkit pipeline --info 的输出结果:

流水线架构

复制代码
代码仓库 (Git/Gitee/GitCode)
    ↓
代码检查 (Lint、安全扫描)
    ↓
编译构建 (GCC、CMake)
    ↓
单元测试 (CUnit、GoogleTest)
    ↓
集成测试 (功能测试、性能测试)
    ↓
部署发布 (Docker、K8s)
    ↓
监控告警 (性能监控、日志分析)

核心工具集

  • 代码分析:Dependency Advisor、Porting Advisor

  • 编译工具:GCC 优化版、CMake

  • 测试工具:单元测试框架、性能测试工具

  • 部署工具:Docker、Kubernetes

  • 监控工具:性能分析、日志收集

准备工作:获取并安装鲲鹏 DevKit

系统要求

  • 操作系统: Ubuntu 20.04
  • 架构:ARM64(鲲鹏 920 处理器)
  • 权限:具备 sudo 权限
  • 网络:可访问华为鲲鹏社区及软件源

添加鲲鹏软件源

1、下载工具https://www.hikunpeng.com/zh/developer/devkit/download?tab=commandLine

2、按依赖顺序安装 RPM 包

复制代码
# 进入 RPM 所在目录(假设在 ~/Downloads)
cd ~/Downloads

# 安装主框架
sudo rpm -ivh devkit-25.2.rc1-1.aarch64.rpm

# 安装源码迁移模块(关键!)
sudo rpm -ivh devkit-porting-25.2.rc1-1.aarch64.rpm

# (可选)安装系统迁移模块
# sudo rpm -ivh devkit-sys-mig-25.2.rc1-1.aarch64.rpm

✅ 验证安装:
/usr/local/devkit/devkit --version

安装依赖工具(如未预装)

复制代码
# 安装基础开发工具
sudo yum install -y git cmake gcc-c++ make docker kubernetes-client

# 安装测试框架(DevKit 会自动调用,但需提前安装)
sudo yum install -y gtest-devel google-benchmark-devel gcovr

初始化项目并配置流水线

创建示例项目

复制代码
mkdir -p myapp/{src,test,.devkit}
cat > myapp/src/main.cpp <<EOF
#include <iostream>
int main() {
    std::cout << "Hello from DevKit C++ project!" << std::endl;
    return 0;
}
EOF

cat > myapp/test/unit_test.cpp <<EOF
// Simple placeholder
int main() { return 0; }
EOF

cat > myapp/CMakeLists.txt <<EOF
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
add_executable(myapp src/main.cpp)
add_executable(unit_test test/unit_test.cpp)
EOF

cat > myapp/.devkit/pipeline.yml <<EOF
name: MyApp CI/CD Pipeline
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

stages:
  - name: 代码检查
    jobs:
      - lint
      - security_scan

  - name: 编译构建
    jobs:
      - build_release

  - name: 测试
    jobs:
      - unit_test
      - performance_test

  - name: 部署
    jobs:
      - build_docker_image
EOF

此配置已简化,适合初学者快速验证全流程。


逐阶段执行与验证(本地调试模式)

代码检查阶段

复制代码
# 启用所有检查规则
devkit config lint --enable-all

# 执行检查(输出 HTML 报告)
devkit lint --source src/ --report html

✅ 预期输出:

  • ./reports/lint/ 下生成 index.html
  • 无严重警告或安全漏洞

编译构建阶段

确保 CMakeLists.txt 包含鲲鹏优化:

复制代码
cmake_minimum_required(VERSION 3.10)
project(MyApp)

# 启用鲲鹏指令集优化
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=armv8-a+sve")

add_executable(myapp src/main.cpp)

执行构建:

复制代码
devkit build --type release

✅ 预期输出:

  • build/release/myapp 可执行文件生成
  • 构建时间显著低于标准 GCC

自动化测试阶段

单元测试

确保 test/unit_test.cpp 内容正确,然后运行:

复制代码
devkit test --unit --report html

✅ 预期输出:

  • 所有测试通过
  • ./reports/test/ 下生成覆盖率报告(需编译时启用 -fprofile-arcs -ftest-coverage

注意 :若使用 devkit test,DevKit 会自动注入覆盖率编译选项。

性能测试
复制代码
devkit perf test

✅ 预期输出:

  • 性能测试用例执行成功
  • 输出类似 BM_Algorithm/1024 12.5 ms 的结果

容器化部署阶段

构建 Docker 镜像

创建 Dockerfile,然后:

复制代码
# 构建镜像(确保 Docker 已启动)
sudo systemctl start docker
devkit deploy --docker --image-name myapp:latest

DevKit 封装了 docker build 命令,自动适配 ARM64 架构。

✅ 验证镜像:

复制代码
docker images | grep myapp
# 应显示 myapp latest <size> <time>
(可选)部署到 Kubernetes
复制代码
# 应用 Deployment 配置(需提前配置 kubeconfig)
kubectl apply -f k8s-deployment.yaml
kubectl get pods -l app=myapp

端到端流水线执行

完成上述配置后,即可一键运行完整流水线:

复制代码
# 本地执行(推荐先本地验证)
devkit pipeline run --local

# 查看执行日志与状态
devkit pipeline status

✅ 成功标志:

  • 所有阶段标记为 ✓ 通过
  • 总耗时 < 10 分钟

常见问题排查指南

|-----------------------------|---------------------------------------------------|
| 问题 | 解决方案 |
| devkit: command not found | 检查是否安装成功,或执行 source /etc/profile |
| Docker 构建失败(x86 镜像拉取) | 确保 FROM 使用 kunpeng/xxxarm64v8/xxx 镜像 |
| 单元测试链接失败 | 安装 gtest-devel 并在 CMake 中链接 GTest::gtest_main |
| 性能测试未触发 | 确认 test/perf_test.cpp 存在且包含 BENCHMARK_MAIN() |


总结

通过以上 详细、可复现的步骤,开发者可以在一台鲲鹏服务器上:

  1. 安装 DevKit 工具链
  2. 初始化项目模板
  3. 配置 YAML 流水线
  4. 逐阶段验证功能
  5. 一键运行完整 CI/CD

整体来看,DevKit 提供的全流程支持,使国产化环境下的软件交付更加高效、自动化和可追溯,为企业构建稳定、高性能的 CI/CD 流水线提供了有力保障。

鲲鹏社区直达https://www.hikunpeng.com/developer?utm_campaign=com&utm_source=csdnkol

相关推荐
想你依然心痛22 天前
鲲鹏+昇腾:开启 AI for Science 新范式——基于PINN的流体仿真加速实践
人工智能·鲲鹏·昇腾
想你依然心痛22 天前
从x86到ARM的HPC之旅:鲲鹏开发工具链(编译器+数学库+MPI)上手与实战
java·开发语言·arm开发·鲲鹏·昇腾
todoitbo22 天前
从零搭建鲲鹏 HPC 环境:从朴素矩阵乘法到高性能实现
线性代数·矩阵·鲲鹏·昇腾
是Dream呀22 天前
从课程入坑到玩转昇腾:昇腾 310 系列平台下 Qwen2.5-7B 大模型训练实践
人工智能·鲲鹏·昇腾
黛琳ghz1 个月前
BoostKit 虚拟化性能优化原理解读
性能优化·虚拟化·优化·鲲鹏·服务·boostkit
黛琳ghz1 个月前
BoostKit 性能优化原理与分布式存储 Global Cache 深度解析
分布式·性能优化·鲲鹏·服务·boostkit