华为云用户手册

  • 代码化构建 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 version: 2.0 # 必须是2.0 steps: BUILD: - maven: image: cloudbuild@maven3.5.3-jdk8-open # 可以自定义镜像地址 inputs: settings: public_repos: - https://mirrors.example.com/maven cache: true # 是否开启缓存 unit_test: coverage: true ignore_errors: false report_path: "**/TEST*.xml" enable: true coverage_report_path: "**/site/jacoco" command: mvn package -Dmaven.test.failure.ignore=true -U -e -X -B 参数名 参数类型 描述 是否必填 默认值 image string 镜像地址,有以下两种格式。 cloudbuild@maven3.5.3-jdk8-open ,以cloudbuild开始,@作为分隔符,后面是编译构建提供的默认镜像。 完整的swr镜像地址,例如:swr.example.example.com/codeci_test/demo:141d26c455abd6d7xxxxxxxxxxxxxxxxxxxx 是 无 settings map maven构建的setting配置。 否 无 cache bool 是否开启缓存。 否 false command string 执行命令。 是 无 unit_test map 单元测试。 否 无 单元测试(unit_test)层级下参数说明: 参数名 参数类型 描述 是否必填 默认值 enable bool 是否处理单元测试数据。 否 true ignore_errors bool 是否忽略单元测试错误。 否 true report_path String 单元测试数据路径。 是 无 converage bool 是否处理覆盖率数据。 否 false coverage_report_path string 覆盖率数据路径。 否 无
  • 图形化构建 在配置构建步骤中,添加“Maven构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 根据需要选择工具版本。 命令 配置Maven命令,一般使用系统默认生成的命令即可。 setting配置 自动生成setting文件并配置依赖仓库:可根据用户的IP不同,自动识别最优站点访问方式,国内用户使用“国内站点”,国际用户使用“国际站点”。建议使用默认配置。 公有依赖仓库:默认已添加华为开源镜像站,同时配置了HuaweiSDK仓库。此配置仅在需要添加非软开云提供的公有依赖仓库时使用,添加方法如下: 单击“添加”。 填写公有依赖仓库地址,根据需要勾选“release仓库”和“snapshot仓库”。release仓库和snapshot仓库至少勾选一个,也可以同时勾选。 release仓库:勾选后,构建过程将尝试从仓库中下载release版本依赖。 snapshot仓库:勾选后,构建过程将尝试从仓库中下载snapshot版本依赖。 私有依赖库:默认已配置软件开发生产线提供的私有依赖仓库。此配置仅在需要添加其它私有依赖仓库时使用,添加方法如下: 新建nexus repository服务扩展点,如:test01。 单击“添加”,选择上一步创建的服务扩展点,并根据需要勾选“release仓库”和“snapshot仓库”。 说明: “release仓库”和“snapshot仓库”两种仓库对应的使用场景区分如下,使用时要务必注意区分,避免出现如“将依赖上传到软件发布库但是构建时无法下载”此类场景。 “snapshot仓库”:对于以调试为目的发布的私有依赖包,一般会给依赖版本号增加-SNAPSHOT后缀(如:1.0.0-SNAPSHOT),执行发布操作时,此类依赖会自动发布到snapshot仓库,发布时无需更新版本号,构建命令中增加-U参数即可拉取最新版本。 对于正式发布的私有依赖包,版本号中不可带-SNAPSHOT后缀(如:1.0.0),执行发布操作时,此类依赖会自动发布到release仓库,发布时必须更新版本号,否则会导致构建过程无法拉取最新依赖包。 发布依赖包到CodeArts私有依赖库 编译构建服务默认使用私有依赖库作为私有依赖下载源,如果需要将构建产物上传至私有依赖库供其他项目依赖使用,则需要添加此配置。配置前,需已创建私有依赖库。配置方法如下: 不配置pom:表示无需发布私有依赖包到CodeArts私有依赖库。 配置所有pom:表示在项目下所有“pom.xml”文件增加deploy配置,使用mvn deploy命令将构建出的依赖包上传到私有依赖仓库。 配置后,需在命令窗口,使用“#”注释命令mvn package -Dmaven.test.skip=true -U -e -X -B,如下图: 删除#mvn deploy -Dmaven.test.skip=true -U -e -X -B命令前的“#”,如下图: 上传的私有依赖包,在其他项目添加pom.xml文件中的groupId、artifactId、version坐标即可引用。 单元测试 如果用户需要对单元测试结果进行处理,可配置此项。详见配置单元测试。 缓存配置 选择是否使用缓存以提高构建速度,选择“使用缓存”后,每次构建时会把下载依赖包缓存起来,后续构建无需重复拉取,可有效提高构建速度。 说明: maven构建的依赖包存入缓存之后,只有当租户下面构建的项目有引进新的依赖包时,才会更新缓存目录,并不支持对已有的依赖包缓存文件进行更新。
  • 配置说明 在配置构建步骤中,添加“单元测试报告”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 根据需要选择工具版本。 单元测试 选择处理单元测试结果并生成可视化报告,并使用报告结果控制任务的执行。 测试报告类型:选择单元测试的框架,目前仅支持junit。 单元测试结果文件:填写相对于项目根目录的相对路径,如 target/surefire-reports/TEST*.xml。目前只支持标准的.xml格式单元测试报告。 是否处理单元测试覆盖率结果:根据实际需要选择。若选“是”, 需确认项目中有使用jacoco-maven-plugin插件生成单元覆盖率报告。
  • 生成Keystore签名文件 使用JDK的keytool工具生成签名文件 找到JDK安装位置以及keytool。 执行生成密钥命令,生成.jks文件。 keytool -genkeypair -storepass 123456 -alias apksign -keypass 123456 -keyalg RSA -validity 20000 -keystore D:/android.jks 使用Android Studio生成签名文件 打开Studio,选择“Build下的Generate Signed Bundle/APK”。 选择“APK”,单击“Next”。 单击“Create new...”,在弹出框填写相关信息,单击“OK”,然后单击“Next”。 签名文件成功生成,查看文件。 生成的签名文件,可以上传到“文件管理”统一管理。
  • 文件管理 文件上传后,可以编辑文件、下载文件、删除文件、为用户配置文件操作权限。 在搜索框输入关键字,可搜索文件。 单击操作列,可修改文件名称,并设置是否允许租户内所有成员在编译构建中使用该文件。 单击操作列,可以下载文件。 单击操作列,在下拉框中选择“删除”,可根据弹框提示确认是否删除。 单击操作列,在下拉框中选择“编辑权限”,可在弹出的界面配置用户操作文件的权限。 表1 文件管理角色权限说明 权限类型 拥有该权限的角色 添加用户 项目下所有用户。 查看 文件创建者、相同租户的用户。 使用 文件创建者、文件创建者配置了使用权限的用户。 更新 文件创建者、文件创建者配置了更新权限的用户。 删除 文件创建者、文件创建者配置了删除权限的用户。 编辑权限 文件创建者。 创建者默认有所有权限并且不可被删除和修改。
  • 代码化构建 1 2 3 4 5 6 7 8 9 10 11 12 ersion: 2.0 # 必须是2.0 steps: BUILD: - grunt: inputs: command: |- npm config set registry http://7.223.219.40/npm/ #npm cache clean -f #npm audit fix --force npm install --verbose grunt npm run build 参数名 参数类型 描述 是否必填 默认值 command string 执行命令。 是 无
  • 代码化构建 1 2 3 4 5 6 7 8 9 version: 2.0 # 必须是2.0 steps: BUILD: - ionic_android_app: inputs: gradle: '4.8' jdk: '3333' ndk: '17' command: ./instrumented.apk 参数名 参数类型 描述 是否必填 默认值 gradle string gradle版本。 是 无 jdk string jdk文件名。 是 无 ndk string ndk文件名。 是 无 command string 执行命令。 是 无
  • 图形化构建 确认Ionic项目已经上传到CodeArts Repo代码仓库。 项目中包含“ionic.config.json”、“package.json”和“angular.json”等项目编译描述文件。 在配置构建步骤中,添加“Ionic Android App构建”构建步骤。 参数说明如下: 参数项 说明 步骤显示名称 构建步骤的名称,可自定义修改。 工具版本 根据需要选择Gradle、JDK和NDK版本。 命令 配置命令框中的打包脚本。
  • 自定义安装npm组件 全局安装:npm install –g xxx。 项目下安装:npm install xxx。 如果发现镜像内安装的npm组件不符合要求,可以按照如下方式卸载,然后安装自己所需组件,以cordova为例: 查看cordova版本:cordova --version,可知版本为9.0.0。 卸载cordova:npm uninstall –g cordova。 重新安装需要的cordova版本:npm install –g cordova@8.0.0。
  • 代码化构建 1 2 3 4 5 6 7 8 9 10 version: 2.0 # 必须是2.0 steps: BUILD: - bazel: inputs: command: | cd java-maven bazel build //:java-maven_deploy.jar mkdir build_out cp -r bazel-bin/* build_out/ 参数名 参数类型 描述 是否必填 默认值 command string 执行命令。 是 无
  • 导读 构建加速服务通过解析AOSP构建工程的内部依赖关系,将其拆解分发至多台机器并发执行,结合增量编译技术,实现对软件编译过程的效率提升,支撑企业研发过程的快速迭代,缩短产品的上市周期。 增量编译技术需结合L3级别加速使用。 使用AOSP构建加速能力需要购买配套构建加速包,购买方法请参考购买增值特性。 该功能目前仅支持北京四区域使用,其余区域后续上线。 本章节配置仅支持鸿蒙L1、L3级别的加速,L2级别待支持。 构建过程中不允许直接覆盖LD_LIBRARY_PATH和LD_PRELOAD环境变量,建议通过追加的方式使用,例如: 1 "export LD_LIBRARY_PATH=new_path:${LD_LIBRARY_PATH}" 父主题: AOSP构建加速
  • 代码化构建 1 2 3 4 5 6 7 8 9 10 11 12 version: 2.0 # 必须是2.0 steps: BUILD: - go: inputs: command: | export GO15VENDOREXPERIMENT=1 export GOPROXY=https://goproxy.cn mkdir -p $GOPATH/src/example.com/demo/ cp -rf . $GOPATH/src/example.com/demo/ go install example.com/demo cp -rf $GOPATH/bin/ ./bin 参数名 参数类型 描述 是否必填 默认值 command string 执行命令。 是 无
  • 代码化构建 1 2 3 4 5 6 7 version: 2.0 # 必须是2.0 steps: BUILD: - docker: inputs: command: | docker pull swr.xx-xxxxx-x.myxxcloud.com/codeci/dockerindocker:dockerindocker18.09-1.3.2 参数名 参数类型 描述 是否必填 默认值 command string 执行命令,每个命令一行。支持的docker命令:build、tag、push、pull、login、logout、save。 是 无
  • 代码化构建 1 2 3 4 5 6 7 ersion: 2.0 # 必须是2.0 steps: BUILD: - swr: image: cloudbuild@ddd inputs: command: echo 'hello' 参数名 参数类型 描述 是否必填 默认值 image string 镜像地址。 镜像地址有两种格式: cloudbuild@maven3.5.3-jdk8-open ,以cloudbuild开始,@作为分隔符,后面是编译构建提供的默认镜像。 完整的swr镜像地址,例如:swr.example.example.com/codeci_test/demo:141d26c455abd6d7xxxxxxxxxxxxxxxxxxxx 是 无 command string 执行命令。 例如,若使用的镜像是用于Maven构建,则配置Maven构建命令,若使用的镜像是用于NPM构建,则配置NPM构建命令,以此类推。 是 无
  • DNS服务器地址设置建议 由于中国大陆的国际出口带宽有限,用户在中国大陆和中国大陆之外国家或地区之间跨地区访问时,会出现网络时延增大的现象。 因此,对于公网域名的NS记录集设置,建议您: 如果您的网站用户主要集中在中国大陆,设置DNS服务器地址为:ns1.huaweicloud-dns.com、ns1.huaweicloud-dns.cn。 如果您的网站用户主要集中在中国大陆之外国家或地区,设置DNS服务器地址为:ns1.huaweicloud-dns.net、ns1.huaweicloud-dns.org。 如果您的网站用户遍布全球,同时设置上述四个DNS服务器地址。
  • 华为云DNS服务器地址 为了实现用户就近接入和最低延迟的解析,提升全球范围的DNS解析体验,华为云在全球多个区域的多个可用区部署了DNS服务器。其中,部分区域支持任播网络(Anycast)功能。 目前,已经部署了DNS服务器的可用区包括:北京、廊坊、上海、广州、深圳、贵阳、香港、泰国、新加坡、日本、德国、南非、智利、迪拜、巴西、墨西哥等。 当前,华为云云解析服务对用户提供解析服务的新的DNS服务器地址为: ns1.huaweicloud-dns.com:中国大陆各区域DNS服务器地址 ns1.huaweicloud-dns.cn:中国大陆各区域DNS服务器地址 ns1.huaweicloud-dns.net:除中国大陆之外国家或地区DNS服务器地址 ns1.huaweicloud-dns.org:除中国大陆之外国家或地区DNS服务器地址 通过DNS的控制台创建公网域名后,其默认生成的NS记录集的值即为上述四个DNS服务器地址。
  • DNS服务器地址设置步骤 在域名的“解析记录”页面,您可以通过修改域名NS类型的记录集值来设置DNS服务器地址。 进入公网域名列表页面。 在域名列表页面,单击域名名称,进入“解析记录”页面。 单击NS类型记录集“操作”列的“修改”,进入“修改记录集”页面。 图1 修改NS记录集 按照公网域名的DNS服务器地址设置建议,修改“修改记录集”页面的“值”。 单击“确定”,完成NS记录集的修改。 部分历史创建的公网域名,其NS地址为ns1.hwclouds-dns.com和ns1.hwclouds-dns.net,该地址是华为云DNS在历史版本中对用户提供解析服务的DNS服务器地址,即将下线。 为了更好的提供解析服务,建议您设置为新的DNS服务器地址,同时将域名服务商处域名的DNS信息同步修改为新的DNS服务器地址,详细请参见怎样查看并修改域名的DNS服务器地址?
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 jobs Array of PhoneJob objects 任务列表。 表5 PhoneJob 参数 参数类型 描述 phone_id String 云手机的唯一标识ID,云手机相关任务包含此字段。 job_id String 任务的唯一标识。 error_code String 错误码。 error_msg String 错误说明。
  • 响应示例 状态码: 200 OK { "request_id" : "6837531fd3f54550927b930180a706bf", "jobs" : [ { "phone_id" : "1234567b8bab40ffb711234cb80d0234", "job_id" : "1564567b8bab40f34711234cb80d0123" }, { "phone_id" : "1678567b8bab40f93711234cb80d0764", "job_id" : "1564567b8bab40f34711234cb80d5678" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 command 是 String 安装单apk场景填写install,多apk场景填写install-multiple。 content 是 String 指定OBS桶中的apk文件(需要提前上传到指定桶中)。 只支持大小写字母、数字、下划线(_)、点(.)、斜线(/)、冒号(:)、中划线(-)。推送的文件只支持apk文件类型。 单apk场景,只能传一个apk,最大长度为1024字节;多apk场景,最多传50个apk,中间用空格分开,最大长度8100字节。 phone_ids 否 Array of strings 云手机ID列表。 server_ids参数不存在时必选,同时存在只处理phone_ids。 server_ids 否 Array of strings 云手机服务器ID列表。 phone_ids参数不存在时必选,同时存在只处理phone_ids。
  • 请求示例 在云手机中安装apk POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commands { "command" : "install", "content" : "-t -r obs://push-bucket/my_apps/test.apk", "phone_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ] } 在云手机中安装多apk POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commands { "command" : "install-multiple", "content" : "-t -r obs://push-bucket/my_apps/test_part1.apk obs://push-bucket/my_apps/test_part_2.apk obs://push-bucket/my_apps/test_part3.apk", "phone_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ] }
  • 功能介绍 在云手机中安装apk。系统会将指定的apk文件下载后直接安装到云手机中。 支持安装单apk应用和多apk应用。可使用install命令安装单apk应用,一次只支持安装一个apk,如果一次传多个apk只有第一个安装成功;可使用install-multiple命令安装多apk应用(多apk应用为单个应用拆分成多个apk),一次只支持同一个应用的多个apk。该接口为异步接口。接口调用前请先确保已完成CPH服务操作OBS桶的委托授权。委托CPH操作OBS桶请参见委托CPH操作OBS桶。 管理面性能有限,对相同服务器批量执行的ADB命令,将会阻塞云手机其他任务执行。 建议通过开发应用市场的方式安装apk。允许安装的apk大小限制为2G(即不可将obs桶内大于2G的apk安装到手机中),超过限制将返回错误。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 jobs Array of Job objects 任务信息。 表5 Job 参数 参数类型 描述 phone_id String 云手机的唯一标识,云手机相关任务包含此字段。 server_id String 云手机服务器的唯一标识ID,云手机服务器相关任务包含此字段。 node_id String (已废弃)云手机服务器的唯一标识ID,云手机服务含此字段。 job_id String 任务的唯一标识。 begin_time String 任务处理开始时间, 时间格式为UTC,YYYY-MM-DDTHH:MM:SSZ。 end_time String 任务处理结束时间, 时间格式为UTC,YYYY-MM-DDTHH:MM:SSZ。 status Integer 任务状态。 1 :运行中 2 : 成功 -1 :失败 error_code String 任务错误码。 error_msg String 任务错误码说明。 execute_msg String 任务执行返回内容,最长1024个字节。
  • 响应示例 状态码: 200 OK { "request_id" : "6a63a18b8bab40ffb71ebd9cb80d0085", "jobs" : [ { "phone_id" : "1234567b8bab40ffb711234cb80d0234", "server_id" : "1e223c8e-3ad0-4bf0-a837-bc90d4f91d01", "node_id" : "1e223c8e-3ad0-4bf0-a837-bc90d4f91d01", "job_id" : "1564567b8bab40f34711234cb80d0123", "begin_time" : "2017-10-25T00:00:00Z", "end_time" : "2017-10-25T00:00:30Z", "status" : -1, "error_code" : "CPS0005", "error_msg" : "Phone not found." }, { "phone_id" : "abc4567b8bab40ffb711234cb80d0abc", "server_id" : "1e223c8e-3ad0-4bf0-a837-bc90d4f91d01", "node_id" : "1e223c8e-3ad0-4bf0-a837-bc90d4f91d01", "job_id" : "1564567b8bab40f34711234cb80d0456", "begin_time" : "2017-10-25T00:00:00Z", "end_time" : "2017-10-25T00:00:32Z", "status" : 2, "error_code" : "", "error_msg" : "" } ] }
  • URI GET /v1/{project_id}/cloud-phone/jobs 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id。 表2 Query参数 参数 是否必选 参数类型 描述 request_id 否 String 任务下发请求时响应的request_id。request_id和request_ids必须指定其中一个。request_id和request_ids同时指定的时候,以request_ids为准。 request_ids 否 String 任务下发请求时响应的多个request_id,用逗号分隔,最多不能超过20个。request_id和request_ids必须指定其中一个。request_id和request_ids同时指定的时候,以request_ids为准。 offset 否 Integer 偏移量为一个大于等于0整数,表示查询该偏移量后面的所有的资源数,默认值为0。 limit 否 Integer 每页返回的资源个数。取值范围:1~100(默认值为100),一般设置为10、20、50。
  • URI GET /v1/{project_id}/cloud-phone/images 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id。 表2 Query参数 参数 是否必选 参数类型 描述 image_type 否 String 镜像类型。 public:公共镜像 private:私有镜像 share:共享镜像 status 否 Integer 镜像状态。 0:CREATING 创建中 1:PRODUCTION 生产态,可使用 2:CREATE_FAILED 创建失败 offset 否 Integer 偏移量为一个大于等于0整数,表示查询该偏移量后面的所有的资源数,默认值为0。 limit 否 Integer 每页返回的资源个数。取值范围:1~100(默认值为100),一般设置为10、20、50。 image_id 否 String 镜像id image_name 否 String 镜像名称 create_since 否 Long 起始时间 create_until 否 Long 截止时间 src_project_id 否 String 共享镜像账号的projectId
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 image_infos Array of ListImagesView objects 镜像详情 total Integer 总条数 request_id String 请求的唯一标识ID。 表5 ListImagesView 参数 参数类型 描述 domain_id String 镜像所属租户 image_name String 镜像名称 update_time String 镜像更新时间 create_time String 镜像创建时间 image_size Long 镜像大小,单位byte project_id String project_id(当image_type为private时,才会返回此字段) image_id String 镜像ID image_version String 镜像AOSP版本 image_type String 镜像类型 公共镜像:public 私有镜像:private 共享镜像:share status Integer 镜像状态。 0:CREATING 创建中 1:PRODUCTION 生产态,可使用 2:CREATE_FAILED 创建失败 src_project_id String 共享镜像账号的projectId(当image_type为share时,才会返回此字段)
  • 响应示例 状态码: 200 OK { "image_infos" : [ { "domain_id" : "4a2a9967e4514c388a4c945efcbab9d6", "image_name" : "cph-private-image", "update_time" : "2024-04-11T06:38:21Z", "create_time" : "2024-04-11T06:38:21Z", "image_size" : 1306150912, "project_id" : "3a63a229aa6e47bab2153b44a7f3f50d", "image_id" : "23030320230421e300221a2000004433", "image_version" : "AOSP 9.0", "image_type" : "private", "status" : 1 } ], "total" : 1, "request_id" : "bff458ad55f24751b0b226119ab4f9fd" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 action 是 String 操作标识。 delete:刪除 tags 是 Array of Tag objects 标签列表。 表4 Tag 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度127个unicode字符。 不能为空,可以包含任意语种字母、数字、空格和_.:=+-@,但首尾不能含有空所有服务均可在标签输入框下拉选择同一标格,不能以_sys_开头。 value 是 String 值列表。 每个值最大长度255个unicode字符。 不能为空,可以包含任意语种字母、、数字、空格和_.:=+-@,但首尾不能含有空格。
  • URI POST /v1/{project_id}/{resource_type}/{resource_id}/tags/action 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id。 resource_type 是 String 资源类型。 cph-server,云手机服务器 枚举值: cph-server resource_id 是 String 资源ID。
共100000条