配置代码下载
配置构建时从代码仓拉取代码的下载方式。
图形化构建
可选择使用指定代码仓库Tag或CommitID构建,同时可选择开启子模块(submodules)自动更新与Git LFS。
预置“代码下载配置”步骤,参考表1配置参数。
参数 |
说明 |
---|---|
使用指定代码仓库Tag或CommitID构建 |
配置执行构建任务时是否指定Tag构建或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 |
参数 |
类型 |
说明 |
---|---|---|
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 |
可选参数。配置是否拉取子模块。
默认值:false。 |
lfs |
bool |
可选参数。配置是否开启git lfs。
构建默认不拉取音视频、图像等大型文件,开启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}" |
参数 |
类型 |
说明 |
---|---|---|
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密码,下载非公开仓库时需填写。 |
- manifest_file中定义的多个仓库,必须为同一种代码源。
- manifest_url与manifest_file必须为同一种代码源;如果为非公开仓库,username&password应该有下载权限。
- repo_url对应的repo仓库,需要有下载权限(仓库开源,或者仓库私有但配置了账号密码)。
- 以上非必填的参数,如果配置的值为空,则使用默认值。
- 建议在使用非公开仓库时,用户名密码通过构建的私密参数进行配置,详情参考配置构建任务参数。