更新时间:2024-05-23 GMT+08:00
分享

配置代码下载

配置代码下载方式。

可选择使用指定代码仓库Tag或CommitID构建,同时可选择开启子模块(submodules)自动更新与Git LFS。

预置“代码下载配置”步骤。

参数说明如下:

参数项

说明

使用指定代码仓库Tag或CommitID构建

不指定、指定Tag构建、指定CommitID构建。

子模块(submodules)自动更新

子模块属于Git的一个概念,是为了解决代码仓库包含并使用其他项目代码仓库的问题,详见子模块管理(Git Submodule操作)

  • 开启:当代码仓库存在子模块时,系统在构建时会自动拉取子模块仓库的代码。
  • 不开启:系统不会自动拉取子模块仓库的代码。

开启Git LFS

根据需要选择是否开启“Git LFS”,构建默认不拉取音视频、图像等大型文件,开启“Git LFS”后,构建将会全量拉取文件。

指定Tag构建:需按照以下操作执行

Tag是指代码仓库中的标签,若源码源选择Repo,那么关于如何创建Tag可参见标签管理

  1. 在编译构建任务中,选择“指定Tag构建”,可以使用历史版本代码进行构建。
  2. 执行任务时,会出现弹窗,输入标签名,单击“确定”,即可执行任务。

指定CommitID构建:需按照以下操作执行

CommitID是指提交代码时生成的编号,若源码源选择Repo,则在代码仓库中显示如下。

在编译构建任务中,可以通过指定CommitID来使用历史版本代码进行构建。

  1. 选择“指定CommitID构建”,输入克隆深度,保存任务。

    克隆深度是指距离最近一次提交的提交次数,该值越大,检出代码的时间越长。深度为正整数,推荐最大深度为25。

    例如:克隆深度输入5,那么在执行任务时,参数“CommitID”填写距离最近提交的前5个提交号中的任意一个都可以。

  2. 执行任务时,会出现弹窗,按需要输入CommitID,单击“确定”,即可启动任务执行。
 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的子路径:代码将会下载到子目录下面。

在安卓、鸿蒙等场景下,一次构建需要同时集成数百甚至上千个代码仓,多个代码仓的集成下载效率至关重要。

编译构建集成Repo下载工具,用户只需进行简单配置即可实现多个代码仓的联动集成。当前支持Repo、gerrit两种类型的代码仓。

配置参考如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
version: 2.0 # 必须是2.0
steps:
  PRE_BUILD:
  - manifest_checkout:
      name: "manifest"
      inputs:
        manifest_url: "https://example.example.example.example.example.com/xx/manifest.git"
        manifest_branch: "master"
        manifest_file: "default.xml"
        path: "dir/dir02"
        repo_url: "https://example.example.example.example.example.com/xx/git-repo.git"
        repo_branch: "master"
        username: "someone"
        password: "${PASSWD}"

参数说明如下:

参数名

参数类型

描述

是否必填

默认值

name

string

步骤名称。

manifest_checkout

manifest_url

string

指定manifest仓地址,包含xml文件的仓库。

manifest_branch

string

指定manifest分支或revision。

HEAD

manifest_file

string

manifest文件路径。

default.xml

path

string

自定义manifest所有子仓下载路径,为工作目录的相对路径

路径不能以“/”开头,不能包含“.”

默认为工作目录。

repo_url

string

repo仓库地址。

https://gerrit.googlesource.com/git-repo

repo_branch

string

repo仓库分支。

stable

username

string

下载仓库时使用的用户名。

否。

下载非公开仓库时需填写。

password

string

下载仓库时使用的密码,https密码。

否。

下载非公开仓库时需填写。

  1. manifest_file中定义的多个仓库,必须为同一种源码源。
  2. manifest_url与manifest_file必须为同一种源码源;如果为非公开仓库,username&password应该有下载权限。
  3. repo_url对应的repo仓库,需要有下载权限(仓库开源,或者仓库私有但配置了账号密码)。
  4. 以上非必填的参数,如果配置的值为空,则使用默认值。
  5. 建议在使用非公开仓库时,用户名密码通过构建的私密参数进行配置,详情参考配置构建任务参数 (可选操作)
  6. 该功能目前仅支持北京四区域使用,其余区域后续上线。
分享:

    相关文档

    相关产品