TeamCity REST API:触发具有自定义工件依赖项的构建

TeamCity REST API:触发具有自定义工件依赖项的构建,teamcity,Teamcity,我正在尝试使用TeamCity 8.1 REST API触发自定义构建(请参阅)。我的构建运行良好,并且我能够毫无问题地指定自定义分支和属性。我现在的目标是为触发的构建指定一个自定义工件依赖项 我在创建构建时收到的响应如下所示: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <build taskId="1234" buildTypeId="buildConfig1" state="queued" ...&

我正在尝试使用TeamCity 8.1 REST API触发自定义构建(请参阅)。我的构建运行良好,并且我能够毫无问题地指定自定义分支和属性。我现在的目标是为触发的构建指定一个自定义工件依赖项

我在创建构建时收到的响应如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
  <build taskId="1234" buildTypeId="buildConfig1" state="queued" ...>
  <buildType id="buildConfig1" name="Build Config Name"  ... />
  ...
  <properties count="1">
    <property name="testParam" value="Test 123" own="true" />
  </properties>
  <custom-artifact-dependencies />
</build>

...
这个响应中的“自定义工件依赖项”标签让我相信有一种方法可以指定自定义依赖项,但我在TeamCity文档、TeamCity论坛或Google中没有找到任何解释如何实现这一点的内容。这里有什么我忽略了的吗?或者有其他方法来实现这一点吗


将以下内容作为“build”标记的子项添加到中会导致“工件依赖项应具有'Artifact\u dependency'类型”错误:


)我也有同样的问题
这就是我的工作原理:

    <build>
      <triggeringOptions queueAtTop="true"/>
      <buildType id="buildConfig1"/>
      <custom-artifact-dependencies count="1">
       <artifact-dependency id="0" type="artifact_dependency">
        <properties>
         <property name="pathRules" value="Artifacts_1.zip
Artifacts_2.zip
Artifacts_To_Unzip.zip!/**
"/>
         <property name="cleanDestinationDirectory" value="true"/>
         <property name="revisionName" value="buildId"/>
         <property name="revisionValue" value="5432"/>
        </properties>
        <source-buildType id="parentBuildConfig" />
       </artifact-dependency>
      </custom-artifact-dependencies>
    </build>

如果“parentBuildConfig”生成仍在运行,请将buildId参数替换为taskId,因为我遇到了相同的问题 这就是我的工作原理:

    <build>
      <triggeringOptions queueAtTop="true"/>
      <buildType id="buildConfig1"/>
      <custom-artifact-dependencies count="1">
       <artifact-dependency id="0" type="artifact_dependency">
        <properties>
         <property name="pathRules" value="Artifacts_1.zip
Artifacts_2.zip
Artifacts_To_Unzip.zip!/**
"/>
         <property name="cleanDestinationDirectory" value="true"/>
         <property name="revisionName" value="buildId"/>
         <property name="revisionValue" value="5432"/>
        </properties>
        <source-buildType id="parentBuildConfig" />
       </artifact-dependency>
      </custom-artifact-dependencies>
    </build>


如果“parentBuildConfig”构建仍在运行,请将buildId参数替换为taskId

这非常有效。我能够在“CustomArtifactDependencies”元素中删除“count”属性,在“ArtifactDependency”元素中删除“id”属性。作为旁注,使用“buildId”修订名要求TeamCity服务器至少运行8.1.4版(请参阅)。非常感谢你的帮助。嗨!我对这个解决方案有一个问题:构建被正确触发,并且依赖关系存在,但是两个构建都在两个不同的代理上同时启动,而不需要等待对方。这使得实际案例失败,因为工件还不存在。除了强制所有构建都在同一个代理上运行之外,您知道有什么解决方案吗?这非常有效。我能够在“CustomArtifactDependencies”元素中删除“count”属性,在“ArtifactDependency”元素中删除“id”属性。作为旁注,使用“buildId”修订名要求TeamCity服务器至少运行8.1.4版(请参阅)。非常感谢你的帮助。嗨!我对这个解决方案有一个问题:构建被正确触发,并且依赖关系存在,但是两个构建都在两个不同的代理上同时启动,而不需要等待对方。这使得实际案例失败,因为工件还不存在。除了强制所有构建在同一个代理上运行之外,您还知道其他解决方案吗?