本页介绍了如何指定 build 依赖项。借助 Cloud Build,您可以将源代码依赖项与构建流程分开管理。
在 build 配置 文件中,您可以列出要为 build 克隆的一个或多个代码库,以及提取这些代码库的顺序。以这种方式指定依赖项可将依赖项提取与 build 过程本身分离。
如果您未在 build 配置 文件中添加任何依赖项,Cloud Build 会克隆包含 build 配置 文件的源代码库(对于触发的构建)或包含源代码的源代码库(对于您从命令行调用的构建)。如果您在 build 配置中添加了依赖项,Cloud Build 将仅克隆 dependencies 字段中指定的代码库。
依赖项会按照您指定的顺序进行克隆。此外,依赖项提取发生在执行任何用户指定的逻辑之前。因此,依赖项提取是可信的。
依赖项会显示在构建详情页面的构建依赖项标签页中。
准备工作
本页面中的说明假定您拥有以下两种代码库类型中的至少一种:
为了确保 具有将 Developer Connect 代码库添加为依赖项的必要权限,请让您的管理员向您服务账号中的 授予 Developer Connect Read Token Accessor (developerconnect.readTokenAccessor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色授予所需的权限。
指定依赖项
您可以通过向 build 配置文件添加 dependencies 字段来指定依赖项。dependencies 是 build 配置中的顶级属性,但您可以将其放在文件中的任意位置。
指定 GitHub 依赖项
如需指定对 GitHub 代码库的依赖项,请向 build 配置文件添加以下 dependencies 配置:
YAML
dependencies:
- gitSource:
repository:
url: 'URL'
developerConnect: 'DC_RESOURCE_PATH'
revision: 'REVISION'
recurseSubmodules: 'true|false'
depth: 'DEPTH'
destPath: 'DEST_PATH'
JSON
{
"dependencies": {
"gitSource": {
"repository": {
"url": "URL"
"developerConnect": "DC_RESOURCE_PATH"
},
"revision": "REVISION",
"recurseSubmodules": true|false,
"depth": "DEPTH",
"destPath": "DEST_PATH",
},
},
}
替换以下值:
URL:要提取的代码库的 HTTPS 网址。除非您的代码库已使用 Developer Connect 连接到 Cloud Build,否则此项为必填项。
DC_RESOURCE_PATH:Developer Connect 代码库的 Google Cloud 资源路径。例如
projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo。 如果您的代码库是使用 Developer Connect 连接到 Cloud Build 的,则此参数为必需参数。如果您的代码库是通过 Developer Connect 连接的,则需要满足以下条件:
- Cloud Build 服务账号必须具有
Developer Connect Read Token Accessor角色。
- Cloud Build 服务账号必须具有
REVISION:必填。要从代码库中提取的版本、提交哈希、标记或分支名称。
recurseSubmodules:'true|false':是否提取子模块。DEPTH:可选,要提取的代码库历史记录的深度。如果未指定,则提取最新提交。
1:最新提交2:最后两次提交3:最后三个提交-1:所有提交
DEST_PATH:必填。代码库克隆到的目录的路径。例如
my/repo。设置
dest_path后,系统会在/workspace/<dest_path>中提取代码库。dest_path值必须是相对于 build 工作目录的路径。
将通用制品指定为依赖项
如需将通用制品指定为依赖项,请将以下 dependencies 配置添加到您的 build 配置文件:
YAML
dependencies:
- genericArtifact:
resource: RESOURCE
destPath: PATH
JSON
{
"dependencies": [
{
"genericArtifact": {
"resource": "RESOURCE",
"destPath": "PATH"
}
}
]
}
其中:
RESOURCE 是 Artifact Registry 常规代码库中常规制品的完整地址,格式如下:
projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSION我们强烈建议您在资源地址中添加制品的指纹,以便 Cloud Build 验证制品引用是否不可变。附加了指纹的软件包版本采用以下格式:
VERSION@dirsum_sha256=HASH_VALUE如需查找 Artifact Registry 代码库中制品的指纹,请参阅检索代码库中软件包版本的指纹。
PATH 是 Cloud Build 从代码库下载软件包的目标文件夹的地址。如果该文件夹尚不存在,Cloud Build 会自动创建它。