本页介绍了如何指定构建依赖项。Cloud Build 可让您将源代码依赖项与构建流程分开管理。
在 build 配置 文件中,您可以列出一个或多个要为构建克隆的代码库,以及提取这些代码库的顺序。以这种方式指定依赖项会将依赖项提取与构建过程本身分开。
如果您未在 build 配置中添加任何依赖项,Cloud Build 会克隆包含 build 配置的源代码库(对于触发的 build)或包含源代码的代码库(对于您从命令行调用的 build)。如果您在 build 配置文件中添加了依赖项,Cloud Build 仅会克隆 dependencies 字段中指定的代码库。
依赖项会按照您指定的顺序进行克隆。此外,依赖项提取会在执行任何用户指定的逻辑之前发生。因此,依赖项提取是可信的。
依赖项会显示在构建详情 页面的构建依赖项 标签页中。
准备工作
本页面中的说明假定您至少拥有以下两种代码库类型之一:
为了确保具有添加 Developer Connect 代码库作为依赖项的必要
权限,请让您的管理员在您的服务帐号上向授予
Developer Connect Read Token Accessor (developerconnect.readTokenAccessor)
IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过 自定义 角色 或其他 预定义 角色授予所需的权限。
指定依赖项
您可以通过向构建配置文件添加 dependencies 字段来指定依赖项。dependencies 是构建配置中的顶级属性,但您可以将其放在文件中的任何位置。
指定 GitHub 依赖项
如需指定对 GitHub 代码库的依赖项,请将以下 dependencies 配置添加到构建配置文件:
YAML
dependencies:
- gitSource:
repository:
url: 'URL'
developerConnect: 'DC_RESOURCE_PATH'
revision: 'REVISION'
recurseSubmodules: 'true|false'
fetchTags: 'true|false'
depth: 'DEPTH'
destPath: 'DEST_PATH'
JSON
{
"dependencies": {
"gitSource": {
"repository": {
"url": "URL"
"developerConnect": "DC_RESOURCE_PATH"
},
"revision": "REVISION",
"recurseSubmodules": true|false,
"fetchTags": 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':是否提取 子模块。fetchTags:'true|false':可选。如果也应提取远程标记,则为 True(默认值为false)。注意:当depth为1(默认值)时,git fetch仅检索指向浅边界内提交的标记。 将depth设置为-1可提取所有历史标记。DEPTH:可选,提取代码库历史记录的深度 。如果未指定,则提取最新提交。
1:最新提交2:最近两次提交3:最近三次提交-1:所有提交
DEST_PATH:必填。代码库克隆到的目录的路径。例如,
my/repo。设置
dest_path后,系统会在/workspace/<dest_path>中提取代码库。dest_path值必须是相对于构建工作目录的路径。
将通用工件指定为依赖项
如需将
通用工件
指定为依赖项,请将以下 dependencies 配置添加到构建
配置文件:
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 会自动创建它。
后续步骤
了解如何使用 Cloud Build 代码库将代码库连接到 Cloud Build。
了解如何使用 Developer Connect将代码库连接到 Cloud Build。