2015-09-02 10 views
9

Ich habe versucht, neue Build auf Visual Studio Team Services (nicht XAML) zu verwenden, aber konnte nicht herausfinden, wie die Quelle nach erfolgreicher Erstellung beschriften. Irgendeine Idee?So beschriften Sie Quelle nach erfolgreichem Build auf Visual Studio Team Services

Unten ist der Screenshot, der zeigt, wie man in XAML einen tut.

enter image description here

Ich habe bereits ein Feature-Request an https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/9613014-allow-label-source-upon-succesful-build-on-visual ich für dieses Problem zu umgehen bin gefragt tatsächlich bis Microsoft es implementiert.

Antwort

15

Ich habe gerade bemerkt, dass die Funktion in Build vNext jetzt verfügbar ist. Die Konfiguration befindet sich auf der Registerkarte Repository in der Builddefinition.

Labeling

+0

würden Sie bitte einen Screenshot hinzufügen, danke im Voraus – cilerler

+0

Sorry, kann nicht Bilder posten, mein Ruf ist zu niedrig :-( –

+0

ohhh ich c das auch so sollte es neue Rollout sein ☺️ thx – cilerler

1

Die Labelquellen-Funktion ist in vNext Build nicht verfügbar.

Neben den Label-Quellen verfügen, die Mitarbeiter von Workitems und erstellen Work Item auf Build-Failure-Funktionen sind ebenfalls nicht verfügbar.

Sie können eine Feature-Anfrage darüber auf der Microsoft-Website einreichen Uservoice: https://visualstudio.uservoice.com/forums/121579-visual-studio/category/30925-team-foundation-server-visual-studio-online

+0

Thx Vicky, ich habe bereits auf UserVoice gepostet, auf der Suche nach einem Workaround. Vielen Dank für Ihre Zeit! – cilerler

2

Für die von Ihnen über diesen Thread für eine Lösung TFS running gehostete (nicht VSO), für Build-Labels, dass die Unterstützung beachten Sie kam in TFS 2015 aus Update 1: https://www.visualstudio.com/en-us/news/tfs2015-update1-vs.aspx

Wir Update 1 wird noch nicht ausgeführt, daher kann ich das nicht bestätigen.

Edit: Wir laufen jetzt Update 1 (und 2, tatsächlich) und Label Bauarbeiten Quellen für on-prem.

+1

Wir betreiben das TFS 2015-Update 1 vor Ort und die Funktion ist vorhanden. – llykke

11

denke ich, Yves Dierick Antwort im Oktober 2015 richtig zurück, aber das Layout der VSTS-Bildschirme hat sich seitdem sehr verändert. In der neuesten Version (Stand: Februar 2017), können Sie ein Label zu einem erfolgreichen Build hinzufügen, indem Sie die Get-Quellen Aufgabe in der Build-Definition Auswahl anzeigen Auswahl Erweitern Einstellungen in der oberen rechten Ecke und dann die Bei Erfolg der Auswahl Radio-Button unter der Tag Quellen Abschnitt, der angezeigt wird.

Ich brauchte eine Weile, um es zu finden, also dachte ich, es könnte jemand anderem helfen. Es hilft nicht, dass diese Option unter "Tag-Quellen" steht und das Wort "Label" überhaupt nicht erwähnt.

enter image description here

+0

Dies sollte jetzt als die richtige Antwort markiert werden. – eddiewould

0

Die XAML Build tat Label Quellen zu Beginn des Build, während vNext baut am Ende des Build zu beschriften scheint. Das ist mir aufgefallen, weil ich während des Builds Dateien ändere/einchecke/beschrifte. Wenn ich vNext den Build label lasse, verschiebt er das Label, das ich nach dem Einchecken auf die Dateien angewendet habe, auf die vorherige Version (die Version, die in GetSources verwendet wurde).

Aber ich habe die Beschriftung von vNext in keiner Logdatei gesehen. Habe ich es vermisst? Ich muss die Beschriftung in vnext deaktivieren und es in meinem Msbuild-Skript tun ...

edit: Deaktivierte Beschriftung in vnext-Builddefinition und Erstellen einer Msbuild-Inline-Task zum Beschriften der Quellen des Arbeitsbereichs. Jetzt kann ich alle Quellen zu Beginn der Build-Label und das Etikett für Dateien verschieben, die während des Build :)

geändert wurden Wenn jemand etwas ähnlich zu tun, hier ist meine Inline-Aufgabe:

<!-- 
    TaskName="LabelWorkspaceSources" 
    - input: TfexeFullPath is the path to tf.exe 
    - input: BaseDirectory is the mapped folder of the software to build 
    - input: Label to apply 
    - input: Version is the changeset to apply the label to 
--> 
<UsingTask TaskName="LabelWorkspaceSources" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll"> 
    <ParameterGroup> 
     <TfexeFullPath Required="true" /> 
     <BaseDirectory Required="true" /> 
     <Label Required="true" /> 
     <Version Required="true" /> 
    </ParameterGroup> 
    <Task> 
     <Code Type="Fragment" Language="cs"> 
     <![CDATA[ 

     //--- get the workspace mapping --- 

     System.Diagnostics.Process tfProcess = new System.Diagnostics.Process(); 
     tfProcess.StartInfo.FileName = TfexeFullPath; 
     tfProcess.StartInfo.Arguments = "workfold"; 
     tfProcess.StartInfo.UseShellExecute = false; 
     tfProcess.StartInfo.CreateNoWindow = true; 
     tfProcess.StartInfo.RedirectStandardOutput = true; 
     tfProcess.StartInfo.WorkingDirectory = BaseDirectory; 
     tfProcess.Start(); 

     string output = tfProcess.StandardOutput.ReadToEnd(); 

     tfProcess.WaitForExit(); 

     string workfoldOutput = output.Trim(); 
     Log.LogMessage(workfoldOutput, MessageImportance.High); 

     string[] linesWorkfoldOutput = workfoldOutput.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); 
     List<string> mappedFolders = new List<string>(); 

     Log.LogMessage("Trying to parse mapped folders.", MessageImportance.High); 
     foreach (string line in linesWorkfoldOutput) 
     { 
      //e.g. $/TPA: C:\TFS_Source\TPA 
      if (line.Contains("$/")) 
      { 
       string[] lineSplit = line.Split(new string[] { ": " }, StringSplitOptions.RemoveEmptyEntries); 

       //entry lineSplit[0] now contains the server path, lineSplit[1] contains the local folder 
       mappedFolders.Add(lineSplit[1]); 
       Log.LogMessage("Found mapped folder: " + lineSplit[1], MessageImportance.High); 
      } 
     } 


     //--- label all the mapped folders --- 

     foreach (string mappedFolder in mappedFolders) 
     { 
      tfProcess = new System.Diagnostics.Process(); 
      tfProcess.StartInfo.FileName = TfexeFullPath; 
      tfProcess.StartInfo.Arguments = "label " + Label + " \"" + mappedFolder + "\" /child:replace /recursive /comment:\"Label created by task LabelWorkspaceSources\" /version:" + Version; 
      tfProcess.StartInfo.UseShellExecute = false; 
      tfProcess.StartInfo.CreateNoWindow = true; 
      tfProcess.StartInfo.RedirectStandardOutput = true; 
      tfProcess.StartInfo.WorkingDirectory = mappedFolder; 
      tfProcess.Start(); 

      output = tfProcess.StandardOutput.ReadToEnd(); 

      tfProcess.WaitForExit(); 

      Log.LogMessage(tfProcess.StartInfo.Arguments, MessageImportance.High); 
      Log.LogMessage(output, MessageImportance.High); 
     } 
     ]]> 
     </Code> 
    </Task> 
</UsingTask> 
Verwandte Themen