更新时间:2024-10-31 GMT+08:00

配置代码下载

配置构建时从代码仓拉取代码的下载方式。

图形化构建

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

预置“代码下载配置”步骤,参考表1配置参数。

表1 代码下载配置参数说明

参数

说明

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

配置执行构建任务时是否指定Tag构建或CommitID构建。

  • 不指定:拉取全部代码进行构建。
  • 指定Tag构建:仅拉取指定Tag的代码进行构建。执行构建任务时需在弹框中输入Tag。

    Tag是指代码仓库中的标签。如果代码源选择的是Repo,关于如何创建Tag可参见标签管理。如果代码源使用的是第三方代码仓,需在第三方代码仓中创建标签。

  • 指定CommitID构建:仅拉取指定CommitID的代码进行构建。执行构建任务时需在弹框中输入CommitID。

    CommitID是指提交代码时生成的编号。以Repo代码仓为例,CommitID在代码仓库中显示如图1

    图1 CommitID

克隆深度

可选参数。

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

例如:克隆深度5就表示只克隆最新5次提交记录以及提交之后的最新内容,不克隆历史提交。

子模块(submodules)自动更新

子模块(submodule)是Git为管理仓库共用而衍生出的一个工具,通过子模块用户可以将公共仓库作为子目录包含到用户的仓库中,并能够双向同步该公共仓库的代码,借助子模块用户能将公共仓库隔离、复用,能随时拉取最新代码以及对它提交修复,能大大提高团队效率。更多详情请参考子模块管理(Git Submodule操作)

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

开启Git LFS

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

代码化构建(单仓下载)

参考以下代码示例,修改在创建代码化构建使用的YAML文件中的PRE_BUILD部分代码信息。

 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
          url: xxxxxxxxx # 拉取代码的ssh地址。
          branch: ${codeBranch} # 任何时候都必填,支持参数化  
          commit: ${commitId}
          lfs: true
          submodule: true
          depth: 100
          tag: ${tag}
          path: test
表2 单仓下载代码示例参数说明

参数

类型

说明

scm

string

填写代码源:当前只支持Repo,如果yaml文件中没配置,则使用构建任务配置的代码仓信息。

默认值:codehub。

url

string

填写拉取代码的代码仓ssh地址。

branch

string

拉取的代码分支。

支持参数化,可使用${codeBranch}调用。

commit

string

可选参数。指定commitId构建时,填写拉取的commitId。

支持参数化,可使用${commitId}调用。

tag

string

可选参数。指定tag构建时,填写拉取的tag。

支持参数化,可使用${tag}调用。如果同时指定commitId和tag,优先执行commitId构建。

depth

int

可选参数。浅克隆深度:当选择commitId构建时,depth必须大于等于commitId所在深度。

默认值:1。

submodule

bool

可选参数。配置是否拉取子模块。

  • true:拉取。
  • false:不拉取。

默认值:false。

lfs

bool

可选参数。配置是否开启git lfs。

  • true:开启。
  • false:不开启。

构建默认不拉取音视频、图像等大型文件,开启git lfs后,构建将会全量拉取文件。默认值:false。

path

string

可选参数。clone的子路径:代码将会下载到子目录下。

代码化构建(manifest多仓下载)

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

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

参考以下代码示例,修改在创建代码化构建使用的YAML文件中的PRE_BUILD部分代码信息。

 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}"
表3 manifest多仓下载代码示例参数说明

参数

类型

说明

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. 建议在使用非公开仓库时,用户名密码通过构建的私密参数进行配置,详情参考配置构建任务参数