Laden...

[Gelöst] TFS API: Auslesen von Builds einer Build Definition

Erstellt von JohnShepperd vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.271 Views
J
JohnShepperd Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren
[Gelöst] TFS API: Auslesen von Builds einer Build Definition

Hallo zusammen,

wie der Titel schon sagt würde ich gerne die TFS API nutzen, um für eine gegebende Build Definition die Builds auszulesen. Dazu möchte ich natürlich C# verwenden (wer hätte das nur gedacht in diesem Forum).

Sobald ich die Builds habe, würde ich gerne überprüfen welche dieser Builds als "Released" markiert wurden.

Mein Problem ist, das ich bisher noch keinen Kontakt mit der TFS API hatte und grade erst am Einlesen in die Doku bin.

Meine Frage daher: Ist mein Vorhaben mit der TFS API möglich? Wenn Ja, wäre es nett wenn ihr mir einen Schubs in die richtige Richtung geben könntet.

Gruß

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo JohnShepperd,

wenn du dich doch gerade in die Doku einliest, dann solltest du das doch gerade lesen können?!

Ist vielleicht das, was du suchst? Ich habs nicht getestet, nur 20 Sekunden gegoogelt 😉

TFS API - How to query builds independent of which build definition they belong to

Gruss

Coffeebean

J
JohnShepperd Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren

Hallo und danke für die schnelle Antwort,

ist tatsächlich ein Fehler meinerseits. Hatte beim lesen der Doku den Methoden Namen im Blick. Meinem nicht sehr gutem Englisch ist es wohl zu verdanken, das ich "QueryBuild" gleich als Methode zum anstellen eines neuen Builds abgestempelt habe.

Ich gucke mal, wie weit ich damit komme und melde mich ggf. noch einmal. An sich ist die Frage aber beantwortet.

Danke noch einmal 😃

edit:
**Hier meine (noch nicht getestete) Lösung der Fragestellung. Vielleicht hilft es jemandem: **


public void DoSomething(string tfsUri, string buildUri)
{
    TfsTeamProjectCollection tfsCollection = new TfsTeamProjectCollection(new Uri(tfsUri));
    IBuildServer buildServer = (IBuildServer)tfsCollection.GetService(typeof(IBuildServer));

    IBuildDetail buildDetail = buildServer.GetBuild(new Uri(buildUri));
    IBuildDefinition buildDefinition = buildDetail.BuildDefinition;

    foreach (IBuildDetail build in buildDefinition.QueryBuilds()) 
    {
        if (build.Quality == "Released")
        {
            //DoSomething here
        }
    }
}