获取TeamCity构建状态

时间:2016-08-08 10:15:38

标签: continuous-integration teamcity

我有Teamcity正在运行build,它有* .msi安装程序的工件输出,我需要标记成功和失败的测试构建,类似

<filename>_<build_status>.msi

即使某些测试失败,我也将TC设置为构建安装程序,以便将测试程序发送给我们。所以关键是要从TeamCity环境中接收构建状态,而不使用REST。

2 个答案:

答案 0 :(得分:2)

我意识到您说您不想使用REST,但您需要做的就是对此URL执行GET请求,替换您的构建配置ID。 IMO这是最简单的方法(前提是安装程序构建配置是一个单独的构建)

/httpAuth/app/rest/builds/buildType:Installer_Build/status

如果您需要帮助实现这一点,请告诉我。

实施

1)添加要设置为GET请求输出的参数

2)添加PowerShell步骤并将代码作为源代码运行 - Get Build Status Gist

3)更新下面突出显示的相关参数以匹配您的设置

enter image description here

希望这有帮助

答案 1 :(得分:0)

我用于其他SO问题剂量的答案也适用于此。

适用于TeamCity Enterprise 2017.1.2(build 46812)

Here你可以找到我的原始答案。

// AgendaItems in Manual Save mode
var agendaDs = app.datasources.AgendaItems;

// this line will create item on client and automatically push it
// to ds.items and set ds.item to it.
agendaDs.createItem();
var agendaDraft = agendaDs.item;

// Field values can be populated from UI via bindings...
agendaDraft.Type = 'X';
agendaDraft.Description = 'Y';


// onDocumentSelect Drive Picker's event handler
var docsDs = agendaDs.relations.AgendaDocs;

result.docs.forEach(function(doc) {
  // this line will create item on client and automatically push it
  // to ds.items and set ds.item to it...however it will throw an exception
  // with this message:
  // Cannot save a foreign key association for the 'AgendaItem'
  // relation because the target record has not been persisted
  // to the server. To fix this, call saveChanges()
  // on the data source for that record's model: AgendaItem
  docsDs.createItem();
  var docDraft = docsDs.item;

  docDraft.DocTitle = doc.name;
  docDraft.DocURL = doc.url;
  docDraft.DriveID = doc.id;
});


// submit button click
agendaDraft.saveChanges();