运行个人构建
一款 个人构建 是常见构建序列的一种构建,通常使用尚未提交到版本控制系统的更改。 个人构建通常是通过 支持的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 文档 中的其它示例。
通过网页用户界面上传补丁并运行个人构建:
打开 运行自定义构建 对话框,然后启用 "以个人构建运行" 选项。 上传补丁" 按钮将会出现。
上传补丁并点击 Run Build。
代理将接收此补丁并在运行构建之前将其应用。 构建完成后,它将还原补丁,以便后续的构建可以重复使用检出目录。
通过 REST API 上传补丁并运行个人构建:
发送以下
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。
创建一个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>通过 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。