TeamCity On-Premises 2024.03 Help

制品迁移工具

artifacts migration tool是一个命令行工具,可以让您将构建成果从一个存储迁移到另一个存储。

TeamCity Artifacts Migration Tool

目前,该工具仅接受 Amazon S3 作为迁移目标。

下载 Artifacts Migration Tool

您可以从 Project Settings | Artifacts Storage 页面下载此工具。

下载工件迁移工具

请注意,您需要在安装了 TeamCity 服务器的同一台机器上安装此工具。

配置文件

在您可以运行 artifacts migration 工具之前,您需要在 config/application.properties 文件中指定以下设置。

  • teamcity.storage.migration.host — 这是 TeamCity 服务器的地址(协议,主机,和端口)。

  • teamcity.storage.migration.artifact.directories — 本地 TeamCity 工件存储的绝对路径。 如果您的 TeamCity 服务器使用多个目录作为构件存储,使用分号(;)作为分隔符。

  • teamcity.storage.migration.access.token — 这是 TeamCity 的 认证令牌。 令牌必须具有足够的权限来访问构件储存器。 导航至 Your Profile | Access Tokens 以创建新的令牌。

服务器 URL 和默认的工件存储路径可以在 Administration | Global Settings 页面中找到。

获取服务器 URL 和存储路径

下面的片段展示了一个示例 application.properties 文件的内容。

teamcity.storage.migration.access.token=aBcEfgHIjkLMnoPQRsTUVwxyz teamcity.storage.migration.artifact.directories=C:\\ProgramData\\JetBrains\\TeamCity\\system\\artifacts teamcity.storage.migration.host=http://localhost:8111

AWS 特定设置

要将工件迁移到或从 Amazon S3 buckets,工件迁移工具需要使用存储在服务器机器上的 AWS 凭据。 请参阅此文档文章以获取更多信息:为开发设置 AWS 凭证和区域

如果一个项目有多个需要迁移并需要不同凭据的 S3 兼容存储,请使用 自定义 AWS 配置文件 来提供这些凭据。 要将凭证文件中的特定配置文件与特定存储关联,将以下属性添加到工具的 config/application.properties 文件中:

teamcity.storage.migration.s3.custom.profile.<FEATURE_ID>=<PROFILE_NAME>
  • <FEATURE_ID> 是来自 存储设置 页面的存储 ID。

  • <PROFILE_NAME> 是来自 AWS 凭据文件的配置文件名称。

目标存储设置

迁移工具将工件复制或移动到当前激活的存储空间。 在您运行迁移过程之前,请转到想要迁移其工件的项目的 项目设置 | 工件存储 页面,并激活目标存储。

激活目标项目存储

运行迁移工具

打开位于 <artifacts_migration_tool>/bin 文件夹的终端,并使用 --项目-p )参数运行 "migrate" (Linux,macOS)或 "migrate.bat" (Windows)文件。 这个参数接受 external project IDs 作为值。

./migrate --project="NetFrameworkProject3"
migrate.bat --project="NetFrameworkProject3"

您可以添加 --递归-r )参数,以指定该工具是否应递归处理所选项目的所有子项目。

如果您需要从云存储而不是本地目录迁移工件,请指定附加的 --源-s )参数,并传递一个存储 ID 作为值。

获取云存储 ID
./migrate -p "NetFrameworkProject3" --source="PROJECT_EXT_2"
migrate.bat -p "NetFrameworkProject3" --source="PROJECT_EXT_2"

当您第一次在此模式下运行迁移工具时,它会检测应被复制的构件,保存迁移计划,并询问您下一步的操作。

  • 更新迁移计划。

  • 显示迁移计划。

  • 将源存储中的工件复制到目标存储中。

  • 撤销迁移。 此选项会从目标存储中删除复制的构件。 在出现未完成或中断的迁移情况下,您可以选择此选项。

  • 从源存储中删除工件。

  • 忘记迁移计划。 如果您指定的迁移参数不正确,可以使用此选项来丢弃保存的迁移计划。

要一次性迁移工件(无需工具进行确认或输入),请通过添加以下命令来指定所需的迁移步骤。

  • --create-migration-plan — 创建或更新迁移计划。

  • --show-migration-plan — 显示迁移计划。

  • --start-migration — 从源存储复制工件到目标存储。

  • --revert-migration — 在迁移不完整或中断的情况下,从目标存储中移除复制的构件。

  • --remove-artifacts-in-source — 从源存储中删除复制的工件。 未被复制的构件将不会被移除。

  • --reset-migration-plan — 废弃当前的迁移计划。

例如,以下命令将给定的 Amazon S3 存储中的工件移至当前活动的存储。

./migrate --project="SampleProject" --source="PROJECT_EXT_2" --start-migration --remove-artifacts-in-source
migrate.bat --project="SampleProject" --source="PROJECT_EXT_2" --start-migration --remove-artifacts-in-source

额外配置属性

您可以将以下属性添加到 配置文件 中。

  • teamcity.storage.migration.processing.threadCount — 工具应使用的线程数量进行处理。 默认值为 4

  • teamcity.storage.migration.failWhenCannotAccessStorageSettings — 控制如果工具无法从 TeamCity 服务器获取存储设置,迁移是否应该失败。 这可能是由于权限不足而发生的。 默认值为 false

  • teamcity.storage.migration.s3.threadCount—— 工具应使用的线程数来上传数据至 S3。 默认值为 4

  • teamcity.storage.migration.s3.forceVirtualHostAddressing — 指定工具是否应使用 S3 URL 地址的虚拟主机风格,而不是已弃用的路径风格。 默认值为 true

  • teamcity.storage.migration.s3.upload.numberOfRetries — 如果在向 S3 上传数据时遇到错误,此工具所做出的尝试次数。 默认值为 5

  • teamcity.storage.migration.s3.upload.retryDelayMs — 尝试之间初始延时,单位为毫秒。 默认值为 1000

最后修改日期: 16日 7月 2024年