云服务器内容精选

  • 前提准备 已有可用项目,如果没有,请新建项目。 已在项目中新建可用代码仓库,如果没有,请新建代码仓库。 在代码仓库中,新建“.cloudbuild”目录,并将yaml文件存放在该目录下,yaml文件编写方法及规范请参考build.yml文件的结构详解。 若yaml文件不存放在“.cloudbuild”目录,可通过“CB_BUILD_YAML_PATH”参数来指定yaml文件在代码仓中的路径。参数配置可参考配置构建参数。
  • 配置并执行yaml构建任务 单击“下一步”,进入“构建模板”页面。 选择“空白构建模板”,单击“下一步”。 选择何种构建模板并不影响使用yaml构建,可以选择系统推荐模板,也可以不使用模板 进入“构建步骤”页签,页面左上角选择“代码化”。 系统会在选择源码源阶段配置的代码仓库及分支中,自动读取yaml文件,可在此处对yaml文件进行修改。 修改完成后需单击右上角“新建”。 单击“新建并执行”,yaml文件修改即可生效并运行yaml构建任务,构建脚本提交后将覆盖原build.yml文件。
  • 使用yaml配置Flutter构建 1 2 3 4 5 6 7 8 9 version: 2.0 # 必须是2.0 steps: BUILD: - flutter: inputs: flutter: region jdk: '3333' ndk: '23.1.7779620' command: ./instrumented.apk 参数名 参数类型 描述 是否必填 默认值 flutter string region名。 是 无 jdk string jdk文件名。 是 无 ndk string ndk文件名。 是 无 command string 执行命令。 是 无 父主题: 单任务配置
  • 使用yaml配置代码下载 配置参考如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 version: 2.0 # 必须是2.0 steps: PRE_BUILD: - checkout: name: checkout inputs: scm: codehub # 代码来源:支持Repo和opensource url: xxxxxxxxx # 拉取代码的ssh地址。 branch: ${codeBranch} # 任何时候都必填,支持参数化 commit: ${commitId} lfs: true submodule: true depth: 100 tag: ${tag} path: test 参数说明如下: 参数名 参数类型 描述 是否必填 默认值 scm string 源码源:当前只支持CodeArts Repo,如果yaml中没配置,则使用构建任务配置的代码仓信息。 否 codehub url string 拉取代码的ssh地址。 是 无 branch string 拉取的代码分支:支持参数化。 是 无 commit string commitId构建时拉取的commitId:支持参数化。 否 无 tag string tag构建时拉取的tag:支持参数化,如果commitId和tag同时存在,优先执行commitId构建。 否 无 depth int 浅克隆深度:当选择commitId构建时,depth必须大于等于commitId所在深度。 否 1 submodule bool 是否拉取子模块:true为拉取;false为不拉取。 否 false lfs bool 是否开启git lfs:为true时会执行git lfs pull。 否 false path string clone的子路径:代码将会下载到子目录下面。 否 无 父主题: 单任务配置
  • 使用yaml配置上传二进制包至仓库 上传的软件包相关限制请参考制品仓库服务的约束与限制。 1 2 3 4 5 6 7 8 version: 2.0 # 必须是2.0 steps: BUILD: - upload_artifact: inputs: path: "**/target/*.?ar" version: 2.1 name: packageName 参数名 参数类型 描述 是否必填 默认值 path string 构建结果所在路径,支持正则表达式。如maven可以使用**/target/*.?ar匹配所有构建出来的jar包和war包。 是 无 version string 不指定(推荐):以构建编号命名上传到发布库的文件存储目录名。 指定:可能会覆盖同名存储目录下的文件。 否 无 name string 不指定(推荐):以文件原始名命名上传到发布库的文件名。 指定:上传多个文件时,可能会存在被覆盖的情况。 否 无 父主题: 单任务配置
  • 使用yaml配置Android APK签名 version: 2.0 # 必须是2.0 steps: BUILD: - android_sign: inputs: file_path: build/bin/*.apk keystore_file: androidapk.jks keystore_password: xxxxxx alias: keyalias key_password: xxxxxx apksigner_commond: --verbose 参数名 参数类型 描述 是否必填 默认值 file_path string 需要签名的APK路径。 是 无 keystore_file string Keystore文件名。 是 无 alias string 别名。 是 无 apksigner_commond string apksigner命令。 是 无 父主题: 单任务配置
  • 使用yaml配置bazel构建 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 执行命令。 是 无 父主题: 单任务配置
  • 功能优势 整个构建过程都使用YAML的语法通过代码化的方式(Build As Code)定义在build.yml中,从而使得: 清晰描述构建过程:构建参数、构建命令、构建步骤、以及构建后的操作,使构建过程可信。 每次构建使用对应当前commit的build.yml配置,保证构建可还原可追溯,不必担心因修改了构建配置而不能重复执行之前的任务。 如果新特性需要修改构建脚本,开发人员可以拉一个新的分支修改build.yml去测试,而不用担心影响其他分支。