HarmonyOS5 CI/CD流水线构建指南

186 阅读1分钟

一、基础环境配置

  1. 签名证书管理
// harmony-signing-config.gradle
android {
    signingConfigs {
        release {
            storeFile file("harmony.keystore")
            storePassword System.env.STORE_PWD  // 从CI环境变量读取
            keyAlias "release"
            keyPassword System.env.KEY_PWD
            signAlg "SHA256withECDSA"  // 鸿蒙强制签名算法
            profile file("release.p7b")  // 证书Profile文件
        }
    }
}

通过环境变量注入密钥信息保障安全

  1. 构建环境容器化
# Dockerfile 基础镜像
FROM ubuntu:22.04
RUN apt-get install -y openjdk-17-jdk nodejs
COPY harmony-sdk /opt/harmony
ENV PATH="/opt/harmony/tools:$PATH"

容器化构建使环境标准化,效率提升40%

二、分层测试策略

  1. 单元测试集成
# 执行所有模块的Local Test
hvigorw test -p coverage=true -p ohos-test-coverage=true

测试报告路径:module/.test/default/outputs/ohosTest/reports

  1. 真机云测试触发
# .gitlab-ci.yml 配置片段
stages:
  - test

cloud_test:
  stage: test
  script:
    - agc cloud-test run 
      --appId $AGC_APP_ID 
      --file build/outputs/app.hap 
      --device-file test/devices.json 
      --report-dir ./reports
  artifacts:
    paths:
      - ./reports/

支持JSON文件定义测试设备池

三、自动化部署流程

  1. 构建优化配置
# 多模块并行编译
hvigorw assembleHap -p product=default --parallel --daemon

通过--parallel参数实现编译加速

  1. 应用发布流水线
// Jenkinsfile 部署阶段
stage('Deploy') {
    steps {
        sh '''hvigorw publish 
            -p channel=appgallery 
            -p releaseType=PROD
            -p changelog="CI Build ${env.BUILD_NUMBER}"'''
    }
}

支持自动生成版本更新日志

四、关键质量保障

  1. 熔断机制配置
// test_policy.json
{
  "performance": {
    "maxColdLaunchTime": 1500,
    "maxMemoryUsage": 800
  },
  "autoRetry": {
    "anrThreshold": 3,
    "crashThreshold": 2
  }
}

异常超限自动停止任务

  1. 测试报告整合
# 合并多设备测试结果
agc cloud-test merge-reports 
  --input-dir ./reports 
  --output-file full_report.html

生成跨设备兼容性分析图表

五、最佳实践数据

某电商应用实施后效果:

  • 构建耗时:从12分钟→3.5分钟
  • 设备兼容问题:减少83%
  • 热更新包体积:≤1.2MB
  • 百台设备并发测试:23分钟完成全量验证

通过该方案可实现:

  1. 代码提交到应用上架全流程自动化
  2. 多维度质量门禁自动拦截缺陷
  3. 测试资源智能调度(华为云支持临时扩展至200+设备)