Ответ 1
Конечно, API использует приложение Tray. Я ранее загружал код из своего SVN-репозитория (ПРИМЕЧАНИЕ: в соответствии с приведенным ниже URL-адресом, теперь он размещен на github.com
), чтобы исправить ошибку (как работает столбец "Last Build Time" - исправлен, но регрессирован в версии 1.5), и это, вероятно, будет хорошим местом для начала.
URL-адрес репозитория https://github.com/ccnet/CruiseControl.NET
.
Я только что обновил свою локальную копию и прошел пробный путь, и вероятным кандидатом на то, что вы хотите, является класс CruiseServerHttpClient
в проекте Remote
.
Использование сборки Remote
для получения статуса каждого проекта/принудительного создания
- Скомпилируйте источник из git
- Создание нового консольного приложения
- Добавьте ссылку на
Thoughtworks.CruiseControl.Remote
иNetReflector
(оба будут в каталоге \bin для проектаRemote
) - Добавьте следующий код в консольное приложение
Код приложения консоли:
using System;
using ThoughtWorks.CruiseControl.Core;
using ThoughtWorks.CruiseControl.Remote;
using ThoughtWorks.CruiseControl.Remote.Messages;
namespace CruiseControlInterface
{
class Program
{
static void Main(string[] args)
{
var ipAddressOrHostNameOfCCServer = ""; // Complete this value
var client = new CruiseServerHttpClient(
string.Format("http://{0}/ccnet/",ipAddressOrHostNameOfCCServer));
foreach (var projectStatus in client.GetProjectStatus())
{
Console.WriteLine("{0} - {1}", projectStatus.Name, projectStatus.BuildStatus);
}
}
}
}
Для каждого проекта вы получите результат, похожий на:
ProjectName - Успех
Чтобы принудительно создать сборку, вы должны сделать следующий вызов:
client.Request("PROJECT_NAME", new IntegrationRequest(BuildCondition.ForceBuild, "YOUR_MACHINE_NAME", "YOUR_USER_NAME"));
Под капотом это результат запроса HTTP, который состоит из:
POST http://CC_SERVER_NAME/ccnet/ViewFarmReport.aspx HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Хост: 192.168.100.180
Content-Length: 64
Ожидайте: 100-продолжить -ForceBuild = истина &ы; Projectname = ИМЯ_ПРОЕКТ &ы; имя_сервер = локальная