TeamCity On-Premises 2024.07 Help

运行个人构建

一款 个人构建 是常见构建序列的一种构建,通常使用尚未提交到版本控制系统的更改。 个人构建通常是通过 支持的IDEs 中的一个,通过 远程运行 程序进行初始化的。 您也可以直接将包含更改的补丁上传到服务器,如下面所述 下面

个人构建使用当前的 VCS 仓库资源以及在远程运行启动过程中识别出的已更改文件。 个人构建的结果可以在相应的 IDE 插件的 "我的更改" 视图中查看,也可以在 TeamCity 的 更改 页面中查看。 已完成的个人构建将在 构建历史记录 中列出,但仅对启动它们的用户可见。
预测试(延时)提交 中了解更多通过远程运行执行提交的信息。

默认情况下,用户在构建列表中仅看到自己的个人构建,但可以通过 显示所有个人构建 选项在 Your Profile | General | UI settings 中更改这种设置,这是 用户资料 的一部分。

您也可以使用 运行对话框的相应选项将构建标记为 个人
默认情况下,只有拥有项目开发人员 角色的用户才能启动个人构建。

在构建配置的 常规设置中,可以 限制运行个人构建

直接补丁上传

拥有 更改构建源代码以应用自定义补丁权限的用户,可以直接通过我们的网络用户界面或REST API将本地更改的补丁上传到TeamCity服务器。

TeamCity 支持以 unified diff format 形式的补丁。
由于可以生成 unidiff 文件的工具间的格式有所不同,我们不能保证所有 unidiff 变体的处理都无误。 目前,TeamCity 提供了 IntelliJ Platform IDEs 和 Git 生成的 unidiff 文件的稳定解析。
TeamCity 不支持非二进制文件中的二进制更改。

生成补丁的方法:

  • 在任何 IntelliJ Platform IDE中:在提交日志中选择所需的本地更改,点击上下文菜单中的 创建补丁,并将补丁保存为 *.diff 文件。

  • 通过 Git:运行 git diff commit1..commit2 > path/filename.diff.
    例如,要将最后一次提交和前一次提交之间的 diff 保存到 patch.diff 文件中,位于 test 目录中,请运行 git diff HEAD^ HEAD > ~/test/patch.diff。 参见 Git 文档 中的其它示例。

通过网页用户界面上传补丁并运行个人构建:

  1. 打开 运行自定义构建 对话框,然后启用 "以个人构建运行" 选项。 Upload patch(上传补丁) 按钮将会出现。

    通过用户界面上传 unidiff 补丁
  2. 上传补丁并点击 Run Build
    代理将接收此补丁并在运行构建之前将其应用。 构建完成后,它将还原补丁,以便后续的构建可以重复使用检出目录。

通过 REST API 上传补丁并运行个人构建:

  1. 发送以下 POST 请求:

    curl \ -X POST \ -H "Content-Type: text/text" \ -H "Origin: <host>:<port>" \ --data-binary @patch.diff \ "http://<username>:<password>@<host>:<port>/uploadDiffChanges.html?description=<description-text>&commitType=0"

    作为回应,您将会在服务器上收到此更改的 ID。

  2. 创建一个XML文件,描述构建节点,并提到构建配置ID和您个人更改的ID:

    <build personal="true"> <triggered type='idePlugin' details='Unified Diff Patch'/> <triggeringOptions cleanSources="false" rebuildAllDependencies="false" queueAtTop="false"/> <buildType id="<build_configuration_id>"/> <lastChanges> <change id="<change_ID>" personal="true"/> </lastChanges> </build>
  3. 通过 REST API 触发个人构建,将创建的文件发布到 buildQueue 端点:

    curl \ -X POST \ -H "Content-Type: application/xml" \ -H "Origin: <host>:<port>" \ --data @node.xml \ "http://<username>:<password>@<host>:<port>/app/rest/buildQueue"

    代理将会接收补丁并在运行构建前应用它。 构建完成后,它将还原补丁,以便后续的构建可以重复使用检出目录。 未使用的补丁会在15分钟的超时后自动进行清理。

推广个人构建

您可以以与 非个人构建 相同的方式推进个人构建。 晋升后,依赖的构建将作为个人构建运行,并使用相同的补丁。

触发个人构建链

当触发个人构建链时,TeamCity 将使构建链的所有构建变为个人化,并尝试将个人补丁应用于所有构建。 然而,如果更改不符合检出规则,TeamCity 将不会应用补丁。 例如,如果一个补丁更改了 src/File.java ,但 VCS 检出规则配置排除了 src 文件夹,那么补丁将不会被应用,代理上的源代码也不会被更改。 在这种情况下,此构建可以优化为检出相同修订版本的非个人构建。

在 Perforce 收藏文件上运行构建

如果当前构建配置有一个 Perforce VCS 根,您可以根据 搁置的 Perforce 文件中的更改运行个人构建。 为此,请启用 作为个人构建运行 选项,并在 已搁置的变更列表 ID 字段中输入目标变更列表 ID。

最后修改日期: 2025年 3月 28日