steps.checkout 定义
使用 checkout
配置管道签出源代码的方式。
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
steps:
- checkout: string # Required as first property. Whether or not to check out the repository containing this pipeline definition.
clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
steps:
- checkout: string # Required as first property. Whether or not to check out the repository containing this pipeline definition.
clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
引用此定义的定义: 步骤
属性
checkout
字符串。 作为第一个属性是必需的。
为指定的存储库配置签出。 指定 self
、 none
、 存储库名称或 存储库资源。 有关详细信息,请参阅在管道中签出多个存储库。
注意
checkout
如果没有步骤,则 对于 ,默认为 jobs.job.step.checkout
,none
对于 ,则 默认self
为 jobs.deployment.steps.checkout
。
checkout
字符串。 作为第一个属性是必需的。
是否检查包含此管道定义的存储库。 指定 self
或 none
。
clean
字符串。
如果为 true,请在提取之前运行 git clean -ffdx,然后运行 git reset --hard HEAD。 true |假。
fetchDepth
字符串。
要提取的 Git 图形的深度。
fetchTags
字符串。
设置为“true”以在提取存储库时同步标记,设置为“false”表示不同步标记。 有关默认行为,请参阅备注。
lfs
字符串。
设置为“true”以下载 Git LFS文件。 默认不下载它们。
persistCredentials
字符串。
设置为“true”,在初始提取后将 OAuth 令牌保留在 Git 配置中。 默认值为不保留它。
submodules
字符串。
对于单个级别的子模块,设置为“true”,或设置为“recursive”以获取子模块的子模块。 默认不提取子模块。
path
字符串。
放置存储库的位置。 根目录为 $ (Pipeline.Workspace) 。
condition
字符串。
计算此条件表达式以确定是否运行此任务。
continueOnError
布尔值。
即使在失败时仍继续运行?
displayName
字符串。
任务的用户可读名称。
target
target。
运行此任务的环境。
enabled
布尔值。
在作业运行时运行此任务?
env
字符串字典。
要映射到进程的环境的变量。
name
字符串。
步骤的 ID。 可接受的值:[-_A-Za-z0-9]*。
timeoutInMinutes
字符串。
在服务器终止此任务之前等待此任务完成的时间。
注意
管道可以配置作业级别超时。 如果作业级别超时间隔在步骤完成之前已过,则包括步骤) 在内的正在运行的作业 (终止,即使该步骤配置了更长 timeoutInMinutes
的间隔也是如此。 有关详细信息,请参阅 超时。
retryCountOnTaskFailure
字符串。
如果任务失败,则重试次数。
备注
浅提取
重要
在 2022 年 9 月 Azure DevOps 冲刺 209 更新后创建的新管道默认启用了浅提取,并配置了深度为 1。 以前默认不是浅提取。 若要检查管道,请在管道设置 UI 中查看浅层提取设置。
若要禁用浅层提取,可以执行以下两个选项之一。
- 在管道设置 UI 中禁用浅层提取选项。
- 在
checkout
步骤中显式设置fetchDepth: 0
。
若要配置管道的提取深度,可以在步骤中checkout
设置 fetchDepth
属性,或在管道设置 UI 中配置浅层提取设置。
注意
如果在 checkout
步骤中显式设置 fetchDepth
,则该设置优先于管道设置 UI 中配置的设置。 设置 fetchDepth: 0
将提取所有历史记录,并覆盖“浅提取”设置。
Clean 属性
如果未设置属性 clean
,则其默认值由 YAML 管道的 UI 设置中的 清理 设置进行配置,默认情况下设置为 true。 除了使用 checkout
提供的清理选项外,还可以在工作区中配置清理。 有关工作区和清理选项的详细信息,请参阅作业中的工作区主题。
同步标记
签出步骤在提取 Git 存储库的内容时使用 --tags
选项。 这会导致服务器提取所有标记以及这些标记所指向的所有对象。 这会增加在管道中运行任务的时间,尤其是在具有大量标记的大型存储库时。 此外,即使启用浅提取选项,签出步骤也会同步标记,因此可能会破坏其用途。 为了减少从 Git 存储库提取或拉取的数据量,Microsoft 添加了一个新签出选项来控制同步标记的行为。 此选项在经典管道和 YAML 管道中都可用。
是否在签出存储库时同步标记可以通过设置 fetchTags
属性在 YAML 中配置,并且通过配置同步标记设置在 UI 中配置。
若要在 YAML 中配置设置,请设置 fetchTags
属性。
steps:
- checkout: self
fetchTags: true
若要在管道 UI 中配置设置,请编辑 YAML 管道,然后选择“更多操作”、“触发器”、“YAML”、“获取源”和检查或取消选中“同步标记”复选框。 有关详细信息,请参阅 同步标记。
默认行为
- 对于在 2022 年 9 月发布的 Azure DevOps 冲刺 209 之前创建的现有管道,同步标记的默认值与添加“同步标记”选项之前的现有行为相同,即
true
。 - 对于在 Azure DevOps 冲刺版本 209 之后创建的新管道,同步标记的默认值为
false
。
重要
UI 中的 同步标记 设置为 true 优先于 fetchTags: false
YAML 中的语句。 如果在 UI 中将 同步标记 设置为 true,则即使 fetchTags
YAML 中的 设置为 false,也会同步标记。
示例
若要完全避免同步源,请执行以下操作:
steps:
- checkout: none
注意
如果在本地服务帐户中运行代理,并且想要使用 git 操作或加载 git 子模块来修改当前存储库,请向项目集合生成服务帐户用户授予适当的权限。
- checkout: self
submodules: true
persistCredentials: true
若要在管道中签出多个存储库,请使用多个 checkout
步骤:
- checkout: self
- checkout: git://MyProject/MyRepo
- checkout: MyGitHubRepo # Repo declared in a repository resource
有关详细信息,请参阅在管道中签出多个存储库。