Es gibt sicherlich eine API, da die Tray-Anwendung es verwendet. Ich habe den Code zuvor von ihrem SVN-Repository heruntergeladen (HINWEIS: wie unten unter der URL, gehostet github.com
), um einen Fehler zu beheben (die Art und Weise der "Letzte Build Time" Spalte funktioniert - die behoben wurde, aber regressiert in der Version 1.5), und das wäre wahrscheinlich ein guter Anfang.
Die Repository-URL lautet https://github.com/ccnet/CruiseControl.NET
.
Ich habe gerade meine lokale Kopie aktualisiert und hatte einen Mooch durch und ein wahrscheinlicher Kandidat für das, was Sie wollen, ist die CruiseServerHttpClient
Klasse im Remote
Projekt. einen Verweis auf Thoughtworks.CruiseControl.Remote
und NetReflector
erstellen Anwendung
Mit der Remote
Baugruppe den Status jedes Projekt zu erhalten/eine Build zwingen, die Quelle von git Kompilieren
- eine neue Konsole
- hinzufügen (beide befinden sich im Verzeichnis \ bin für das Projekt
Remote
)
- Fügen Sie Ihrer Konsolenanwendung den folgenden Code hinzu
Console Anwendungscode:
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);
}
}
}
}
Für jedes Projekt, das Sie Ausgabe erhalten werden ähnlich wie:
Projektname - Erfolg
einen Build zu erzwingen, Sie‘ d den folgenden Anruf tätigen:
client.Request("PROJECT_NAME", new IntegrationRequest(BuildCondition.ForceBuild, "YOUR_MACHINE_NAME", "YOUR_USER_NAME"));
Unter der Haube dieses in einer HTTP-Anforderung dazu führt, gemacht, die besteht aus:
POST http://CC_SERVER_NAME/ccnet/ViewFarmReport.aspx HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: 192.168 .100.180
Content-Length: 64
erwarten: 100-Continue
forcebuild = true & Projektname = PROJECT_NAME & -serverName = local
Spot auf Antwort, die Cheeers !! :-) –
Die Assemblies Thoughtworks.CruiseControl.Remote.dll und NetReflector.dll befinden sich ebenfalls im cctray-Programmverzeichnis. – John
In Ihrem Beispiel Erzwingen eines Builds erfordert Computername und Benutzer. Ist das nur zum Loggen da es nicht per Post verschickt wird? –