Działania Team Foundation Build
Działania Team Foundation Build są podstawowymi składnikami procesu kompilacji w systemie Team Foundation Build.Działań tych można użyć do utworzenia niestandardowego procesu kompilacji, aby spełnić wymagania zespołu, takie jak działanie zgodnie z logiką niestandardową lub wykonywanie wyspecjalizowanych zadań.
W większości przypadków najlepszym sposobem tworzenia niestandardowego szablonu procesu kompilacji jest bazowanie na Szablonie domyślnym (DefaultTemplate.xaml).W ten sposób można korzystać z użytecznej funkcjonalności utworzonej podczas dostosowywania określonych części do spełnienia wymagań.Inną zaletą tego podejścia jest to, że pokazane są szczególne i praktyczne przykłady korzystania z działań, które opisano w tym temacie.Aby uzyskać informacje o sposobie tworzenia szablonu procesu kompilacji, zobacz sekcję Dostosowywanie szablonu procesu kompilacji.
Ważne |
---|
Utwórz niestandardowy proces kompilacji tylko wtedy, gdy konieczne jest spełnienie wyspecjalizowanych wymagań.Możesz użyć DefaultTemplate.xaml, aby szybko zdefiniować proces kompilacji, który spełnia wiele typowych wymagań.Aby uzyskać więcej informacji, zobacz Użycie szablonów domyślnych w procesie kompilacji. |
W tym temacie:
Wymagane uprawnienia
Ukierunkowane na cel odwołanie do działań
Alfabetyczne odwołanie do działań
Wymagane uprawnienia
Aby wykonać procedury, które używają działań Team Foundation Build, należy ustawić następujący zbiór uprawnień na Zezwalaj:
Edytuj definicję kompilacji
Wyewidencjonuj i Zaewidencjonuj dla odpowiednich katalogów kontroli wersji (takich jak podkatalog BuildProcessTemplates projektu zespołowego)
Dodawaj do kolejki kompilacje
Aby uzyskać więcej informacji, zobacz Uprawnienia serwera programu Team Foundation Server.
Ukierunkowane na cel odwołanie do działań
Wykonaj podstawowe zadania
Pobierz wartości zmiennych środowiskowych
Testuj zmienne dla wartości null
Pobierz ścieżki do plików w obszarze roboczym
Pracuj z katalogami
Pobierz ścieżkę do katalogu roboczego agenta kompilacji
Pobierz pliki, których nie ma w obszarze roboczym
Znajdź pliki
Zapisz ostrzeżenia, błędy, komunikaty i inne dane w dzienniku kompilacji
Zapisz metadane kompilacji do magazynu danych
Kontroluj proces kompilacji
Uruchom działania w agencie kompilacji
Użyj struktury mutex do implementowania procesu bezpiecznego wątkowo
Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz)
Kompiluj, testuj i wykonuj inne zadania
Użyj programu MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i wykonywania innych zadań
Uruchom testy
Pobierz listę testów, na które wpływa kompilacja
Rozpocznij proces
Pracuj z kontrolą wersji
Skojarz grupę zmian i elementy robocze z kompilacją
Zaewidencjonuj zmiany warunkowe
Oceń zasady ewidencjonowania
Oznacz pliki w kontroli wersji
Pobierz listę zestawów odłożonych
TfGet
TfResolve
TfShelve
TfUndo
TfUnshelve
TfWorkfold
Pracuj z elementami roboczymi
Skojarz grupę zmian i elementy robocze z kompilacją
Utwórz element pracy
Pracuj z danymi symbolicznymi
Osadź wersje i ścieżki kontroli wersji w danych symbolicznych w plikach .pdb
Publikuj symbole do magazynu symboli SymStore
Pobierz odwołania do przydatnych obiektów
Pobierz odwołanie do obiektu dla kolekcji projektu zespołowego
Pobierz odwołanie do obiektu dla agenta kompilacji
Pobierz odwołanie do obiektu dla szczegółów kompilacji
Pobierz odwołanie do obiektu dla środowiska kompilacji
Alfabetyczne odwołanie do działań
AgentScope
ApproveRequestForCheckIn
AssociateChangesetsAndWorkItems
CheckInGatedChanges
ConvertWorkspaceItem
ConvertWorkspaceItems
CopyDirectory
CreateDirectory
CreateWorkspace
DeleteDirectory
DeleteWorkspace
DownloadFile
DownloadFiles
EvaluateCheckInPolicies
ExpandEnvironmentVariables
FindMatchingFiles
GenerateRunSettings
GetApprovedRequests
GetBuildAgent
GetBuildDetail
GetBuildDirectory
GetBuildEnvironment
GetCommonLocalPath
GetCommonServerPath
GetImpactedTests
GetPendingChanges
GetRejectedRequests
GetReshelvedShelveset
GetShelvedChanges
GetTeamProjectCollection
GetWorkspace
IndexSources
InvokeForReason
InvokeProcess
IsNotNull<T>
IsNull<T>
LabelSources
LabelWorkspace
MSBuild
MSTest
OpenWorkItem
ParseWorkspaceSpec
PublishSymbols
QueryShelvesets
RejectRequestFromCheckIn
RetryRequest
RetryRequests
RevertWorkspace
RunOnce
RunTests
SetBuildProperties
SharedResourceScope
SyncWorkspace
SynchronizeRequests
TfGet
TfQueryConflicts
TfResolve
TfShelve
TfUndo
TfUnshelve
TfWorkfold
TfsBuild
UpdateBuildNumber
WriteBuildError
WriteBuildInformation<T>
WriteBuildMessage
WriteBuildTestError
WriteBuildWarning
WriteCustomSummaryInformation
Wykonaj podstawowe zadania
Możesz użyć działań Team Foundation Build do wykonywania następujących zadań:
Pobierz wartości zmiennych środowiskowych
Pobierz ścieżki do plików w obszarze roboczym
Pracuj z katalogami
Pobierz ścieżkę do katalogu roboczego agenta kompilacji
Pobierz pliki, których nie ma w obszarze roboczym
Znajdź pliki
Zapisz ostrzeżenia, błędy, komunikaty i inne dane w dzienniku kompilacji
Zapisz metadane dotyczące kompilacji
Pobierz wartości zmiennych środowiskowych (działanie ExpandEnvironmentVariables)
Użyj działania ExpandEnvironmentVariables do rozpoznania jednej lub większej liczby zmiennych środowiskowych na serwerze kompilacji.Zmienne środowiskowe są odczytywane w agencie kompilacji, jeśli to działanie jest wewnątrz sekwencji AgentScope; w przeciwnym razie są odczytywane na kontrolerze kompilacji.
Porada |
---|
Dowiedz się, jakie przydatne bity danych można uzyskać ze zmiennych środowiskowych TF_BUILD.Można na przykład uzyskać katalog plików binarnych. Z tego katalogu proces kompilacji kopiuje pliki wyjściowe do tymczasowej lokalizacji.Zobacz sekcję Zmienne środowiskowe Team Foundation Build. |
WłaściwośćWynik ExpandEnvironmentVariables (String)
Zwraca wynik operacji.Na przykład: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.
Właściwości argumentów ExpandEnvironmentVariables
Wejście (String): należy określić ciąg zawierający zmienne środowiskowe, które mają być rozpoznane.Każdą zmienną środowiskową należy sformatować, określając właściwość MSBuild zamiast używania notacji symbolu procentu systemu Windows.Na przykład: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."
AdditionalVariables (IDictionary<String,String>): można określić obiekt IDictionary, który zawiera dowolne dodatkowe zmienne (jako klucze), dla których mają być rozpoznane odpowiadające im wartości.
Powrót do początku
Testuj zmienne dla wartości null
IsNotNull<T>
Użyj działania IsNotNull<T>, aby sprawdzić, czy wyrażenie języka Visual Basic, takie jak używana zmienna, podane we właściwości Wartość (Object) nie ma wartości Null.Wynik testu jest zwracany w Wyniku właściwości Boolean.
IsNull<T>
Użyj działania IsNull<T>, aby sprawdzić, czy wyrażenie języka Visual Basic, takie jak używana zmienna, podane we właściwości Wartość (Object) nie ma wartości Null.Wynik testu jest zwracany w Wyniku właściwości Boolean.
Pobierz ścieżki do plików w obszarze roboczym
Każda kompilacja ma obszar roboczy kontroli wersji zdefiniowany na zakładce Obszar roboczy definicji kompilacji.Obszar roboczy zawiera kompilację z dostępem do plików kodu źródłowego i innych plików, których potrzebuje z systemu kontroli wersji.Program Team Foundation Build zawiera dwa działania, których można użyć do pracy z plikami w obszarze roboczym kompilacji: ConvertWorkspaceItemi ConvertWorkspaceItems.
Aby uzyskać więcej informacji dotyczących obszarów roboczych kompilacji, zobacz Tworzenie lub edycja definicji kompilacji.
Porada |
---|
Aby uzyskać szczegółowe wskazówki krok po kroku dotyczące sposobu korzystania z działania ConvertWorkspaceItem w typowym scenariuszu, zobacz Kontroli, gdzie Build System umieszcza swoje pliki binarne. |
Pobieranie ścieżki do pliku w obszarze roboczym (działanie ConvertWorkspaceItem)
Użyj działania ConvertWorkspaceItem, aby przekonwertować ścieżkę serwera do ścieżki lokalnej agenta kompilacji lub przekonwertować ścieżkę lokalną agenta kompilacji do ścieżki serwera.
WłaściwośćWynik ConvertWorkspaceItem (String)
Zwraca ścieżkę skonwertowaną.
Właściwości argumentów ConvertWorkspaceItem
Wejście (String): należy podać wartość ścieżki, która ma być skonwertowana.
Obszar roboczy (Workspace): należy podać odwołanie do Workspace zawierającego plik.W większości przypadków należy ustawić tę właściwość na zmienną inicjowaną we właściwości Wynik działania CreateWorkspace.Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.
Kierunek
Konwertuj ścieżkę serwera do ścieżki lokalnej: we właściwości Kierunek wybierz ServerToLocal, a następnie określ ścieżkę do pliku na serwerze we właściwości Wejście (String).
Na przykład zespół może przechowywać wspólne narzędzia w następującym katalogu: $/OurTeam/BuildProcess/Util.Można utworzyć niestandardowy proces kompilacji, który uruchamia narzędzie ScanBinaries.exe po skompilowaniu plików binarnych.Jeśli $/OurTeam/BuildProcess/Util jest mapowany na kartę Obszar roboczy definicji kompilacji, można określić $/OurTeam/BuildProcess/Util/ScanBinaries.exe we właściwości Wejście, aby uzyskać ścieżkę lokalną do narzędzia z właściwości Wynik (String).
Konwertuj ścieżkę lokalną do ścieżki serwera: we właściwości Kierunek wybierz ServerToLocal, a następnie określ ścieżkę lokalną do pliku agenta kompilacji we właściwości Wejście.
Pobieranie ścieżek do plików w obszarze roboczym (działanie ConvertWorkspaceItems)
Użyj działania ConvertWorkspaceItems, aby konwertować ścieżki serwera do ścieżek lokalnych agenta kompilacji lub konwertować ścieżki lokalne agenta kompilacji do ścieżek serwera.
WłaściwośćWynik ConvertWorkspaceItems (IList<String>)
Zwraca skonwertowane wartości ścieżek.
Właściwości argumentów ConvertWorkspaceItems
Wejście (IEnumerable<String>): należy podać wartości ścieżek, które chcesz przekonwertować.
Obszar roboczy (Workspace): należy podać odwołanie do Workspace, gdzie znajdują się pliki.W większości przypadków należy ustawić tę właściwość na zmienną inicjowaną we właściwości Wynik działania CreateWorkspace.
Porada Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.
Kierunek: wybierz jedną z następujących wartości:
Wybierz ServerToLocal, jeśli określasz zbiór wartości ścieżek serwera we właściwości Wejście i chcesz, aby właściwość Wynik zwracała listę wartości ścieżek lokalnych.
Wybierz LocalToServer, jeśli określasz zbiór wartości ścieżek lokalnych we właściwości Wejście i chcesz, aby właściwość Wynik zwracała listę wartości ścieżek serwera.
Pracuj z katalogami
Można pracować z katalogami, używając kilku działań w programie Team Foundation Build.
Porada |
---|
Jeśli trzeba pracować z katalogami, które są częścią obszaru roboczego kontroli wersji Twojej kompilacji, należy w zamian użyć działań obszaru roboczego.Aby uzyskać więcej informacji, zobacz Pobieranie ścieżek do plików w obszarze roboczym. |
Tworzenie katalogu (działanie CreateDirectory)
Użyj działania CreateDirectory do utworzenia katalogu o nazwie określonej we właściwości Katalog (String).
Skopiuj katalog (działanie CopyDirectory)
Użyj działania CopyDirectory do skopiowania cyklicznie całej zawartości z jednego katalogu określonego we właściwości Źródło (String) do innego katalogu określonego we właściwości Miejsce docelowe (String).Katalog określony we właściwości Miejsce docelowe musi już istnieć.Puste katalogi lub podkatalogi nie są kopiowane.
Usuń katalog (działanie DeleteDirectory)
Użyj działania DeleteDirectory, aby usunąć katalog o nazwie określonej we właściwości Katalog (String).W przypadku usuwania katalogu, który zawiera podkatalogi, należy ustawić właściwość Cyklicznie (Boolean) na True; w przeciwnym razie kompilacja nie powiedzie się.
Pobierz ścieżkę do katalogu roboczego agenta kompilacji (działanie GetBuildDirectory)
Użyj działania GetBuildDirectory, aby uzyskać ścieżkę literału do katalogu roboczego agenta kompilacji we właściwości Wynik (String).Działania tego można użyć tylko wewnątrz działania AgentScope.
Powrót do początku
Manipulowanie danymi ścieżki
Działanie GetCommonLocalPath
Użyj działania GetCommonLocalPath, aby pobrać ścieżkę do wspólnego folderu nadrzędnego najniższego poziomu jednego lub więcej folderów lokalnych.Jeśli na przykład określono LocalItems (IEnumerable<String>) w następujący sposób:
{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}
Wówczas Wynik (String) zwróci:
c:\Code\Fabrikam-3\TestScrum\Main
Działanie GetCommonServerPath
Użyj działania GetCommonServerPath, aby pobrać ścieżkę do wspólnego folderu nadrzędnego najniższego poziomu jednego lub więcej folderów lokalnych.Jeśli na przykład określono ServerItems (IEnumerable<String>) w następujący sposób:
{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}
Wówczas Wynik (String) zwróci:
$/TestScrum/Main
Pobierz pliki, których nie ma w obszarze roboczym
Użyj działania DownloadFiles, aby pobrać jeden plik lub więcej.Ignoruj działanie DownloadFile.
Działanie DownloadFiles
Użyj działania DownloadFiles do pobrania jednego pliku lub więcej z kontroli wersji.
Porada |
---|
Jeżeli pliki do pobrania znajdują się w obszarze roboczym kompilacji, należy prawdopodobnie uzyskać dostęp do nich za pomocą działania ConvertWorkspaceItem. |
Właściwości argumentu DownloadFiles
LocalPath (String) Należy określić wartość:
Jeśli pobierany jest pojedynczy plik, określ ścieżkę lokalną i nazwę, która ma być nadana dla lokalnej kopii pobieranego pliku; na przykład "c:\Docs\readme.txt".
Jeśli pobieranych jest kilka plików, określ ścieżkę lokalną dla katalogu, do którego mają być pobrane pliki; na przykład "c:\Docs\".
ServerPath (String) Należy określić wartość:
Jeśli pobierany jest pojedynczy plik, określ ścieżkę serwera i nazwę tego pliku; na przykład "$/Docs/readme.txt".
Jeśli pobieranych jest kilka plików, określ ścieżkę serwera do katalogu zawierającego te pliki; na przykład "$/Docs/".
Cykl (RecursionType):
OneLevel: pobiera jeden plik lub więcej z katalogu określonego we właściwości ServerPath.
Full: pobiera pliki z katalogu określonego we właściwości ServerPath i wszystkie pliki we wszystkich podkatalogach.
Wersja (String): można określić versionspec.Aby pobrać bieżącą wersję, pozostaw tę właściwość ustawioną na Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Aby uzyskać więcej informacji dotyczących versionspecs, zobacz Składnia wiersza polecenia.
DeletionID (Int32): tę właściwość należy określić, tylko wtedy, gdy pobierany jest plik, który został usunięty z kontroli wersji.Możesz uzyskać tę wartość interaktywnie, wpisując w wierszu polecenia tf dir /deleted. (Aby uzyskać więcej informacji, zobacz Dir Command).Jednak program Team Foundation Build nie zapewnia wbudowanego działania dla uzyskania DeletionID.Aby używać tej właściwości, należy uzyskać lub utworzyć niestandardowe działanie, które zapewnia tę funkcjonalność.
Powrót do początku
Działanie DownloadFile
Ignoruj działanie DownloadFile.Działanie DownloadFiles jest najłatwiejszym sposobem, aby pobrać jeden plik lub więcej.
Znajdowanie plików (działanie FindMatchingFiles)
Użyj działania FindMatchingFiles, aby znaleźć pliki.Określ kryteria wyszukiwania we właściwości MatchPattern (String).W tej właściwości można określić argument, który zawiera następujące elementy:
Składnia, która jest obsługiwana przez argument searchPattern metody DirectoryGetFiles(String, String).
**, aby określić wyszukiwania cykliczne.Na przykład:
Aby szukać plików tekstowych w katalogach źródłowych, można określić coś, co przypomina następującą wartość dla właściwości MatchPattern: String.Format("{0}\**\*.txt", SourcesDirectory).
Aby szukać plików tekstowych w katalogach ze źródłami lub dodatkowymi podkatalogami nazwanymi txtfiles, można określić coś, co przypomina następującą wartość dla właściwości MatchPattern: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).
Wyniki operacji są zbierane we właściwości Wynik (IEnumerable<String>).
Zapisz ostrzeżenia, błędy, komunikaty i inne dane w dzienniku kompilacji
WriteCustomSummaryInformation
Użyj działania WriteCustomSummaryInformation, aby napisać komunikat do podsumowania kompilacji, który będzie wyświetlany użytkownikom w oknie wyników kompilacji.
Właściwości argumentów WriteCustomSummaryInformation
Komunikat (String): należy określić komunikat, który chcesz wyświetlić w podsumowaniu kompilacji.
Wewnątrz komunikatu można dołączać hiperłącza ,używając jednej z poniższych składni:
[link text](url) [link text] (url)
Na przykład:
For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
SectionDisplayName (String): należy określić nazwę sekcji, w której ma być wyświetlony komunikat.Jeśli wiele wystąpień WriteCustomSummaryInformation z tą samą wartością SectionKey określa różne wartości SectionDisplayName, wówczas system używa SectionDisplayName pierwszego wystąpienia w szablonie procesu kompilacji.
SectionKey (String): należy określić identyfikator dla nazwy sekcji, w której ma być wyświetlony komunikat.Określona wartość musi być zgodna z zasadami opisanymi w temacie NameProperty.
Przykładowo implementowane są dwa wystąpienia WriteCustomSummaryInformation, gdzie SectionKey ma wartość “MySection”. Podczas przetwarzania kompilacji oba komunikaty pojawiają się w tej samej sekcji w podsumowaniu kompilacji.
SectionPriority (Int32): można określić priorytet sekcji, który określa względne jej położenie w podsumowaniu kompilacji.Im niższa wartość, tym wyżej sekcja będzie wyświetlana w podsumowaniu.Jeśli wiele wystąpień WriteCustomSummaryInformation z tą samą wartością SectionKey określa różne wartości SectionPriority, wówczas system używa wartości SectionPriority pierwszego wystąpienia w szablonie procesu kompilacji.
Powrót do początku
Działanie WriteBuildMessage
Użyj działania WriteBuildMessage, aby zapisać w dzienniku kompilacji komunikat informacyjny.Musisz określić komunikat we właściwości Komunikat (String).Możesz również określać znaczenie komunikatu, zmieniając wartość właściwości Znaczenie (BuildMessageImportance).
Porada |
---|
|
Działanie WriteBuildWarning
Użyj działania WriteBuildWarning, aby zapisać w dzienniku kompilacji komunikat ostrzegawczy.Ostrzeżenie pojawia się z żółtym wykrzyknikiem w oknie wyników kompilacji.Musisz określić komunikat we właściwości Komunikat (String).
Ostrzeżenia kompilacji są zapisywane tylko wtedy, gdy zespół ustawi poziom szczegółowości na Minimalny lub wyższy.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.
Działanie WriteBuildError
Użyj działania WriteBuildError, aby zapisać w dzienniku kompilacji komunikat błędu kompilacji.Błędy pojawiają się z czerwonym wykrzyknikiem w oknie wyników kompilacji.Kiedy do dziennika zdarzeń zapisywany jest błąd, kompilacja jest klasyfikowana jako Partially Succeeded.Musisz określić komunikat we właściwości Komunikat (String).
Błędy są rejestrowane zawsze, bez względu na ustawienie szczegółowości.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.
Działanie WriteBuildTestError
Użyj działania WriteBuildTestError, aby zapisać testowy komunikat błędu w dzienniku kompilacji.Błędy pojawiają się z czerwonym wykrzyknikiem w oknie wyników kompilacji.Kiedy do dziennika zdarzeń zapisywany jest błąd, kompilacja jest klasyfikowana jako Partially Succeeded.Musisz określić komunikat we właściwości Komunikat (String).
Błędy są rejestrowane zawsze, bez względu na ustawienie szczegółowości.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.
Działanie WriteBuildInformation<T>
Użyj działania WriteBuildInformation<T>, aby umieścić obiekt w dzienniku kompilacji.Gdy użytkownik wyświetla dziennik w oknie wyników kompilacji, obiekt jest renderowany przy użyciu odbicia.
Właściwości argumentów WriteBuildInformation<T>
Wartość (Object): należy określić obiekt, który ma być umieszczony w dzienniku kompilacji.Aby obiekt mógł być renderowany w oknie wyników kompilacji, musi implementować IBuildInformationNode i ustawić Type na jedną z następujących wartości InformationTypes:
ActivityProperties
ActivityTracking
AgentScopeActivityTracking
BuildError
BuildMessage
BuildProject
BuildStep
BuildWarning
ExternalLink
OpenedWorkItem
ParentToBuildDetail: można określić False, aby uczynić obiekt nadrzędny tego obiektu obiektem nadrzędnym działania. Można też określić True, aby uczynić obiekt nadrzędny obiektem IBuildDetail.
Efektem użycia tej właściwości jest to, jak informacje są wyświetlane w oknie wyników kompilacji.W przypadku określenia False informacje będą wcięte i wyrównane z danymi wyjściowymi z innych działań, które są przed i po działaniu WriteBuildInformation<T> i znajdują się na tym samym poziomie.Jeśli określisz True, informacje nie będą wcięte.
Powrót do początku
Zapisz metadane do magazynu danych
Można zapisać metadane o kompilacji do magazynu danych:
Zapisz numer kompilacji (działanie UpdateBuildNumber)
Zapisz kluczowe punkty danych o kompilacji (działanie SetBuildProperties)
Porada |
---|
Jeśli działania te nie obsługują metadanych, które chcesz zapisać, można użyć działania GetBuildDetail, aby uzyskać odwołanie do obiektu IBuildDetail. Następnie przypisz dane bezpośrednio do obiektu za pomocą tego odwołania. |
Zapisz numer kompilacji (działanie UpdateBuildNumber)
Użyj działania UpdateBuildNumber, aby ustawić numer kompilacji (lub nazwę) danej kompilacji.To działanie wykonuje następujące kroki:
Konstruuje numer kompilacji oparty na wyrażeniu, które określa format numeru kompilacji.Proces kompilacji zazwyczaj przyjmuje to wyrażenie z argumentu przepływu pracy, który jest dostarczany przez parametr na karcie Proces definicji kompilacji.
Ustawia numer kompilacji (lub nazwę) danej kompilacji, zapisując wartość wynikową do właściwości BuildNumber.
WłaściwośćWynik UpdateBuildNumber (String)
Wynik: zwraca nową wartość BuildNumber.
Właściwości UpdateBuildNumber
- BuildNumberFormat (String): należy podać wyrażenie określające format numerów kompilacji.Aby uzyskać informacje dotyczące składni wyrażenia, zobacz Użycie numerów kompilacji jako opisowych nazw zakończonych kompilacji.
Powrót do początku
Zapisz kluczowe punkty danych o kompilacji (działanie SetBuildProperties)
Użyj SetBuildProperties, aby zapisać kluczowe punkty danych do obiektu IBuildDetail, który zarządza składowaniem danych każdej kompilacji w magazynie danych.Wiele z tych danych jest widocznych dla użytkownika w oknie wyników kompilacji.
Właściwości SetBuildProperties
PropertiesToSet: należy zaznaczyć pola wyboru dla nazw właściwości, które chcesz ustawić.
BuildNumber (String): można ustawić BuildNumber dla kompilacji i traktować to jako nazwę kompilacji.
Porada Aby określić tę wartość na podstawie ustawień określonych przez użytkownika na karcie Proces definicji kompilacji, prawdopodobnie zamiast tej właściwości należy użyć działania UpdateBuildNumber.
CompilationStatus (BuildPhaseStatus): można ustawić stan kompilacji (CompilationStatus). (Działanie MSBuild także ustawia tę wartość automatycznie).
DropLocation (String): można zarejestrować lokalizację wrzucania we właściwości DropLocation.
[!UWAGA]
W przypadku ustawienia tej właściwości nie ma potrzeby tworzenia lokalizacji docelowej.W zamian ta właściwość używana jest do przechowywania w magazynie danych lokalizacji folderu docelowego, tworzonego zazwyczaj przy użyciu działania CreateDirectory.
KeepForever (Boolean): można ustawić właściwość KeepForever na True, aby pominąć ustawienia na karcie Zasady przechowywania definicji kompilacji i zachować zakończoną kompilację na zawsze.
LabelName (String): można ustawić właściwość LabelName, aby zarejestrować etykietę używaną do oznaczenia tej kompilacji w plikach kodu źródłowego w kontroli wersji.Zwykle ustawia się tę właściwość, aby dopasować się do wartości właściwości Nazwa działania LabelWorkspace.
Ważne Program Team Foundation Build wymaga tych danych do skojarzenia grupy zmian i elementów roboczych z kompilacjami.Jeśli dane te nie będą podane, działanie AssociateChangesetsAndWorkItems zakończy się niepowodzeniem.
LogLocation (String): można użyć właściwości LogLocation do zarejestrowania ścieżki pliku UNC do folderu, w którym proces kompilacji umieszcza plik dziennika.
[!UWAGA]
Prawdopodobnie nie trzeba będzie używać tej właściwości w niestandardowym procesie kompilacji.Ta właściwość jest przeznaczona głównie do użytku przez plik UpgradeTemplate.xaml do obsługi starszych procesów kompilacji.
Jakość (String): można zarejestrować jakość kompilacji we właściwości Quality.
SourceGetVersion (String): można użyć właściwości SourceGetVersion, aby zarejestrować specyfikację wersji, dla której są pobierane źródła dla tej kompilacji.
Stan (BuildStatus): można zarejestrować ogólny stan kompilacji we właściwości Status.Na przykład można używać tej właściwości do wskazania, czy kompilacja zakończyła się powodzeniem czy też niepowodzeniem.
TestStatus (BuildPhaseStatus): można używać właściwości TestStatus, aby zarejestrować ogólny stan testów uruchamianych dla tej kompilacji.Na przykład można użyć tej właściwości do wskazania, czy testy wykonywane dla tej kompilacji zakończyły się powodzeniem czy też niepowodzeniem.
Powrót do początku
Kontroluj proces kompilacji
Można użyć działań Team Foundation Build do kontrolowania procesu kompilacji w następujący sposób:
Uruchom działania w agencie kompilacji
Użyj struktury mutex do implementowania procesu bezpiecznego wątkowo
Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz)
Uruchom działania w agencie kompilacji (działanie AgentScope)
Użyj działania AgentScope, aby ująć części procesu kompilacji, który chcesz uruchomić w agencie kompilacji.
Właściwości argumentów AgentScope
Wybór agenta
MaxWaitTime (TimeSpan): można określić maksymalną ilość czasu oczekiwania procesu kompilacji na dostępność agenta kompilacji.Można wpisać wartość w formacie gg:mm:ss.Przykładowo kompilacja zakończy się niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określono wartość 01:30:45 i kompilacja nie została przypisana do agenta kompilacji po 1 godzinie, 30 minutach i 45 sekundach.Określ wartość 00:00:00, jeśli chcesz nadać kontrolerowi kompilacji nieograniczony czas na odnalezienie agenta do przetworzenia definicji kompilacji.
Ważne Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając odpowiednią wartość niezerową we właściwości MaxWaitTime
ReservationSpec (AgentReservationSpec): można ograniczyć rodzaj agenta kompilacji przetwarzającego działania, które zawiera to działanie.Można na przykład określić, że tylko agenci kompilacji posiadający pewien znacznik będą używani do przetwarzania działań wewnątrz działania AgentScope.
Wykonanie
MaxExecutionTime (TimeSpan): można określić maksymalną ilość czasu dozwolonego na zakończenie działania AgentScope.Można wpisać wartość w formacie gg:mm:ss.Na przykład kompilacja zostanie zakończona niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określona została wartość 04:30:15 i agent kompilacji nie zakończył swojej pracy po 4 godzinach, 30 minutach i 15 sekundach.Określ wartość 00: 00: 00, jeśli chcesz dać agentowi kompilacji nieograniczony czas na jej przetwarzanie.
Porada Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając uzasadnioną wartość niezerową we właściwości MaxExecutionTime
Zakres
- DataToIgnore: zignoruj tę właściwość.
Powrót do początku
Użyj nazwanej struktury mutex do zaimplementowania procesu bezpiecznego wątkowo (działanie SharedResourceScope)
Użyj działania SharedResourceScope do zaimplementowania nazwanej struktury mutex (mutual exclusion — wzajemne wykluczenie), aby upewnić się, że ujęty segment procesu kompilacji będzie „bezpieczny wątkowo”.
Typowym zastosowaniem tego działania jest ujęcie części procesu kompilacji uzyskujących dostęp do zasobu udostępnionego, do którego dostęp może uzyskać co najwyżej jeden proces w danej chwili.Na przykład może wystąpić potrzeba, aby kompilacje zapisywały dane w porządku sekwencyjnym do pojedynczego pliku tekstowego w udostępnianiu plików.Aby upewnić się, że ten rodzaj procesu działa poprawnie, należy zaimplementować go wewnątrz działania SharedResourceScope.
Inny przykład można znaleźć w DefaultTemplate.xaml, w którym wywołanie działania PublishSymbols jest osadzone wewnątrz działania SharedResourceScope:
Sekwencja (Sequence) >
Uruchomienie agenta (AgentScope) >
Spróbuj skompilować, testuj i skojarz grupę zmian z elementami roboczymi (TryCatch [Try]) >
Sekwencja (Sequence) >
Pobierz testy, których dotyczą zmiany, źródła indeksów i publikuj symbole (Parallel) >
Jeśli SourceAndSymbolServerSettings.IndexSources lub SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Indeksuj źródła i opublikuj symbole dla zainicjowanych kompilacji (InvokeForReason) >
Jeśli SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Spróbuj opublikować symbole (TryCatch [Try]) >
Zsynchronizuj dostęp do magazynu symboli (SharedResourceScope) >
Opublikuj symbole (PublishSymbols)
Właściwości argumentów SharedResourceScope
ResourceName (String): należy określić wartość.Wszystkie wystąpienia działań SharedResourceScope są uruchamiane pojedynczo, jeśli mają tę samą wartość ResourceName w kolekcji projektów zespołowych (nawet jeśli są w różnych szablonach definicji kompilacji).
MaxExecutionTime (TimeSpan): można określić maksymalną ilość czasu dozwolonego na zakończenie działania SharedResourceScope.Można wpisać wartość w formacie gg:mm:ss.Na przykład kompilacja będzie zakończona niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określono wartość 04:30:15 i działanie SharedResourceScope nie zostanie zakończone po 4 godzinach, 30 minutach i 15 sekundach.Określ wartość 00:00:00, jeśli chcesz zezwolić na nieograniczony czas przetwarzania działania SharedResourceScope.
Porada Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając uzasadnioną wartość niezerową we właściwości MaxExecutionTime
MaxWaitTime (TimeSpan): można określić maksymalną ilość czasu oczekiwania procesu kompilacji w kolejce na przetworzenie działania SharedResourceScope.Można wpisać wartość w formacie gg:mm:ss.Na przykład kompilacja będzie zakończona niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określono wartość 01:30:45 i działanie SharedResourceScope nie zostanie przetworzone w ciągu 1 godziny, 30 minut i 45 sekund.Określ wartość 00:00:00, jeśli chcesz zezwolić na nieograniczony czas oczekiwania procesu kompilacji w kolejce.
Porada Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając odpowiednią wartość niezerową we właściwości MaxWaitTime
Powrót do początku
Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz) (działanie InvokeForReason)
Użyj działania InvokeForReason, aby ująć segment procesu kompilacji, który ma być uruchomiony tylko w kompilacjach uruchomionych z określonego powodu.Przyczyny kompilacji są zazwyczaj ustawiane przez wyzwalacz wybierany przez użytkownika na karcie Wyzwalacz definicji kompilacji.We właściwości Przyczyna można określić jedną lub więcej wartości dla przyczyn, na które chcesz zezwolić. Aby uzyskać więcej informacji, zobacz Określanie wyzwalaczy kompilacji oraz przyczyn.
Powrót do początku
Kompilacja, testowanie i wykonywanie innych zadań
Można użyć działań programu Team Foundation Build do kompilowania plików binarnych, uruchamiania testów oraz wykonywania innych zadań:
Użyj programu MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i wykonywania innych zadań
Uruchom testy
Pobierz listę testów, na które wpływa kompilacja
Użyj programu MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i wykonywania innych zadań (działanie MSBuild)
Użyj działania MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i korzystania z innych funkcji, dostarczanych przez MSBuild.
Wynik MSBuild
Żadna właściwość tego działania nie zwraca wyniku.To działanie ustawia jednak CompilationStatus na Failed w przypadku zarejestrowania jakichkolwiek błędów kompilacji.
Właściwości argumentów MSBuild
AdditionalVCOverrides (String): w przypadku ustawienia GenerateVsPropsFile na True, zawartość tej właściwości zostanie osadzona w wygenerowanym pliku .vsprops.
CommandLineArguments (String): można określić argumenty wiersza polecenia, które mają być przekazane do MSBuild.
Konfiguracja (String): można określić konfigurację do kompilacji.Na przykład: “debug” lub “release”.
GenerateVSPropsFile (Boolean): jeśli ta właściwość jest ustawiona na True, MSBuild generuje standardowy plik .vsprops do przekazania do projektów C++.Plik ten będzie zawierał katalog wyjściowy dla projektów C++ i wszystko to, co zostanie określone we właściwości AdditionalVCOverrides.
Plik dziennika (String): można określić nazwę pliku dziennika, który powinien być utworzony przez MSBuild.
LogFileDropLocation (String): można określić w pełni kwalifikowaną ścieżkę UNC do katalogu, w którym ma być zapisany plik dziennika MSBuild.
MaxProcesses (Int32): można określić maksymalną liczbę procesów, które tworzy MSBuild.
OutDir (String): można określić katalog, gdzie MSBuild ma wrzucić skompilowane pliki binarne.Aby uzyskać więcej informacji, zobacz Kontroli, gdzie Build System umieszcza swoje pliki binarne.
Platforma (String): można określić platformę, na którą kompiluje program MSBuild.Na przykład: “Any CPU”, “x86” lub “x64”.
Projekt (String): można określić rozwiązanie lub projekt kodu, który kompiluje program MSBuild.
ResponseFile (String): można określić plik odpowiedzi używany przez program MSBuild.
RunCodeAnalysis (CodeAnalysisOption): można określić, czy program analizy kodu powinien być uruchomiony zawsze, według ustawień projektu czy też nigdy nie powinien być uruchamiany.
Targets (IEnumerable<String>): można określić cele do kompilacji.
TargetsNotLogged (IEnumerable<String>): można określić cele, dla których zdarzenia ProjectStarted nie powinny być rejestrowane.
ToolPath (String): można określić ścieżkę do narzędzia.
ToolPlatform (ToolPlatform): można określić platformę dla narzędzia.Określ Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto, aby wykryć platformę na podstawie bieżącego systemu operacyjnego.
Poziom szczegółowości (BuildVerbosity): można określić poziom szczegółowości dziennika generowanego przez MSBuild.
Aby uzyskać więcej informacji o wielu opcjach MSBuild, na które wpływają właściwości MSBuild, zobacz Informacje w wierszu polecenia programu MSBuild.
Powrót do początku
Uruchom testy
Testy można uruchomić za pomocą działania RunTests lub działania MSTest.
Uruchom testy przy użyciu działania RunTests
Użyj działania RunTests, aby do uruchamiania testów użyć modułu uruchamiającego testy Agile Test Runner.Jeśli Twoja kompilacja kompiluje i testuje pliki binarne o niezgodnych platformach, należy uruchamiać to działanie oddzielnie dla zestawów w każdej platformie.
Aby uzyskać więcej informacji, zobacz Uruchamianie testów w procesie kompilacji.
Podstawowe właściwości RunTests
TestSources (IEnumerable<String>): należy określić listę plików zestawów, które zawierają testy do uruchomienia.
ExecutionPlatform (ExecutionPlatformType): można określić platformę plików binarnych do przetestowania.Aby uzyskać więcej informacji, zobacz Moduł uruchamiający testy Agile Test Runner.
ExecutionTimeout (Int32): można określić maksymalną ilość czasu oczekiwania procesu kompilacji na zakończenie przebiegu testowego.Określ wartość 0, jeśli chcesz nadać działaniu RunTests nieograniczony czas na wykonywanie testów.
KeepAlive (Boolean): można ustawić tę właściwość na True, jeśli proces modułu uruchamiającego testy Agile Test Runner ma kontynuować wykonywanie w agencie kompilacji po zakończeniu działania RunTests.
RunSettings (String): nie udokumentowano.
TestCaseFilter (String): ta właściwość umożliwia uruchomienie podzbioru przypadków testowych.Aby uzyskać więcej informacji, zobacz Określanie kryteriów dla testów uruchamianych przez Visual Studio Test Runner.
UpdateFrequency (Int32): nie udokumentowano.
UpdateFrequencyTimeout (Int32): nie udokumentowano.
Właściwości publikowania RunTests
Można użyć następujących właściwości do publikowania wyników testu dla kolekcji projektów zespołowych:
PublishResults (Boolean): należy ustawić tę właściwość na True, aby opublikować wyniki testów.
Flavor (String): można określić wersję kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.
Platforma (String): można określić platformę kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.
RunName (String): można określić nazwę przebiegu testowego.Klienci procesu kompilacji zobaczą tę nazwę w oknie podsumowania wyników kompilacji.Jeśli nazwa nie zostanie określona, system wygeneruje ją automatycznie.
Delegaty
OnTestCompleted: nie udokumentowano.
OnTestRunCompleted: nie udokumentowano.
Powrót do początku
Uruchamianie testów przy użyciu działania MSTest
Użyj tego działania, aby uruchomić testy za pomocą MSTest.exe.
Podstawowe właściwości MSTest
Na początek należy zadecydować, jak mają być uruchamiane testy, a następnie określić wartości dla odpowiednich właściwości.
Aby uruchomić testy w kontenerach (podejście zalecane), użyj następujących właściwości:
TestContainers (IEnumerable<String>): należy określić kontenery testów, które użytkownik chce uruchomić.Właściwość ta jest równoważna opcji /testcontainer polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/testcontainer).
SearchPathRoot (String): można określić katalog główny ścieżki do katalogu, w którym należy szukać kontenerów testów i ich zależności.Jeśli wartość nie zostanie określona, działanie MSTest spróbuje znaleźć pliki w typowych lokalizacjach.
TestSettings (String): można określić plik konfiguracji przebiegu testu do wykorzystania.Właściwość ta jest równoważna opcji /testsettings polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/testsettings).
Aby uruchomić testy na listach testów, użyj następujących właściwości:
TestLists (IEnumerable<String>): należy określić listy testów, które mają być uruchomione.Właściwość ta jest równoważna opcji /testlist polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/testlist) i Badanie określające list do grupy testów.
TestMetadata (String): należy określić plik metadanych zawierający listy testów, które mają być uruchomione.Właściwość ta jest równoważna opcji /testmetadata polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/testmetadata).
Właściwości filtrowania MSTest
Można użyć następujących właściwości, aby filtrować uruchamiane testy:
Kategoria (String): można filtrować testy na podstawie ich kategorii.Właściwość ta jest równoważna opcji /category polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/category) i Definiowanie kategorii testów służących do grupowania testów.
MaxPriority (Int32): można określić maksymalny priorytet testów, które mają być uruchomione.Jedynie testy o priorytecie niższym od tej wartości lub jej równym zostaną uruchomione.Należy określić dodatnią liczbę całkowitą, która jest większa od lub równa właściwości MinPriority lub określić -1, jeśli użytkownik nie chce określać priorytetu maksymalnego.
Porada Jeśli do testów przypisane zostały priorytety, właściwości MinPriority i MaxPriority mogą być ważnym mechanizmem pomagającym w zdefiniowaniu równowagi między dokładnym testowaniem a szybszymi kompilacjami.
MinPriority (Int32): można określić priorytet minimalny dla testów do uruchomienia.Jedynie testy, których priorytet jest większy od tej wartości lub jej równy zostaną uruchomione.Należy określić dodatnią liczbę całkowitą, która jest mniejsza od lub równa właściwości MaxPriority lub określić -1, jeśli użytkownik nie chce określać priorytetu minimalnego.
TestNames (IEnumerable<String>): można określić nazwy testów do uruchomienia.Właściwość ta jest równoważna opcji /test polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/test).
Właściwości publikowania MSTest
Można użyć następujących właściwości do publikowania wyników testu dla kolekcji projektów zespołowych:
Publikuj (Boolean): należy ustawić tę właściwość na True, aby opublikować wyniki testów.
Flavor (String): można określić wersję kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.Właściwość ta jest równoważna opcji /flavor polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia dotyczące publikowania wyników testów.
Platforma (String): można określić platformę kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.Właściwość ta jest równoważna opcji /platform polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia dotyczące publikowania wyników testów.
TestConfigId (Int32): można określić identyfikator istniejącej konfiguracji zarządzania testami do skojarzenia z przebiegiem testu, którego wyniki mają być opublikowane.Właściwość ta jest równoważna opcji /testconfigid polecenia MSTest.exe.Aby uzyskać więcej informacji, uruchom MSTest /? w wierszu polecenia Visual Studio.
TestConfigName (String): można określić nazwę istniejącej konfiguracji zarządzania testami do skojarzenia przebiegiem testu do opublikowania.Właściwość ta jest równoważna opcji /testconfigname polecenia MSTest.exe.Aby uzyskać więcej informacji, uruchom MSTest /? w wierszu polecenia Visual Studio.
Inne właściwości MSTest
CommandLineArguments (String): aby uzyskać informacje dotyczące dodatkowych opcji wiersza polecenia, zobacz MSTest.exe - Opcje wiersza poleceń.
PathToResultsFilesRoot (String): można określić ścieżkę do katalogu głównego agenta kompilacji, gdzie MSTest.exe umieszcza pliki wyników (.trx).
ToolPath (String): można określić ścieżkę do katalogu zawierającego wersję MSTest.exe do uruchomienia.Jeżeli ścieżka nie zostanie określona, Team Foundation Build automatycznie określa ścieżkę na podstawie danych z list testów lub kontenerów testów.
Powrót do początku
Pobierz listę testów, na które wpływa kompilacja (działanie GetImpactedTests)
Użyj działania GetImpactedTests, aby zidentyfikować zmiany kodu w bieżącej kompilacji i przedstawić listę testów, na które te zmiany miały wpływ.To działanie zapisuje listę zmodyfikowanych testów w magazynie danych, aby pomóc członkom zespołu określić, które testy powinni uruchomić po zakończeniu kompilacji.Aby uzyskać więcej informacji dotyczących sposobu, w jaki zespół może wykorzystać te dane, zobacz Które testy należy uruchomić od ukończenia ostatniej kompilacji?.
[!UWAGA]
Działanie to nie wpływa na kompilacje ewidencjonowane warunkowo lub kompilacje prywatne.
Wymagane warunki
Działanie GetImpactedTests może działać tylko wtedy, gdy są spełnione następujące warunki:
Działanie MSTest zostało uruchomione z plikiem ustawień testu (określonym we właściwości TestSettings), w którym zbierane są dane o wpływie.Można użyć generowanego automatycznie pliku Traceandtestimpact.testsettings lub innego pliku ustawień testu, w którym zaznaczono pole wyboru Wpływ na testy.Aby uzyskać więcej informacji, zobacz Porady: zbieranie danych niezbędnych do sprawdzenia, które testy będą wymagały przeprowadzenia po wprowadzeniu zmian w kodzie.
Działanie GetImpactedTests pomyślnie zidentyfikowało poprzednią kompilację.Aby uzyskać więcej informacji, zobacz następną sekcję.
Jak działanie GetImpactedTests identyfikuje poprzednią kompilację
Działanie GetImpactedTests zwraca wyniki, porównując bieżącą kompilację z poprzednią.Działanie identyfikuje poprzednią kompilację, używając następujących procesów:
Jeśli określono właściwość BaselineBuildDropLocation, kompilacja, która wygenerowała te pliki binarne, jest identyfikowana jako poprzednia.
Jeśli nie określono właściwości BaselineBuildDropLocation, działanie identyfikuje poprzednią kompilację przez wyszukiwanie w magazynie danych najnowszych kompilacji, które spełniają wszystkie następujące kryteria:
Kompilacja ma taki sam BuildDefinitionUri jak bieżąca kompilacja.
Status kompilacji Status to Succeeded lub PartiallySucceeded.
Kompilacja posiada DropLocation.
Nie jest to kompilacja ewidencjonowana warunkowo ani prywatna.
Właściwości wyniku GetImpactedTests
CodeChanges (CodeChangeList): zwraca listę zmian wprowadzonych do każdej metody w kodzie między tą a poprzednią kompilacją.Metody są analizowane na poziomie Microsoft intermediate language (MSIL).
ImpactedTests (TestList): zwraca listę testów, na które miały wpływ zmiany kodu między poprzednią a tą kompilacją.
Właściwości argumentów GetImpactedTests
Różne
- Build: należy podać obiekt kompilacji IBuildDetail.Można użyć działania GetBuildDetail, aby uzyskać odwołanie do tego obiektu.
Inne
Zestawy (IEnumerable<String>): należy określić listę zestawów, które ma zbadać to działanie.Zazwyczaj te zestawy są kompilowane w tej kompilacji.
AssociatedChangesets (IList<Changeset>): można określić zestawy zmian, które chcesz skojarzyć z wynikami wpływu testu.Zazwyczaj użytkownik chce określić kompilowane zestawy zmian.Można uzyskać odwołanie do tych zestawów zmian dzięki działaniu AssociateChangesetsAndWorkItems.
BinariesRoot (String): należy określić ścieżkę do plików binarnych, od których zależą zestawy użytkownika.Można uzyskać tę wartość za pomocą działania GetBuildDirectory.
Obszar roboczy (Workspace): należy podać odwołanie do obszaru roboczego kompilacji.Można uzyskać odwołanie z właściwości Wynik działania CreateWorkspace.
BaselineBuildDropLocation (String): można określić ścieżkę do folderu docelowego zawierającego zakończoną kompilację, którą działanie GetImpactedTests ma porównać z bieżącą kompilacją.Jeśli ta właściwość nie jest określona, działanie spróbuje wysłać do systemu kompilacji zapytanie o poprzednią kompilację.Aby uzyskać więcej informacji, zobacz „Jak działanie GetImpactedTests identyfikuje poprzednią kompilację” wcześniej w tej sekcji.
Powrót do początku
Uruchom proces (działanie InvokeProcess)
Użyj działania InvokeProcess do uruchomienia procesu (uruchom program) na serwerze kompilacji.Działanie to jest zasadniczo otoką nad Start.
WłaściwośćWynik InvokeProcess (Int32)
Zwraca ExitCode z procesu.
Właściwości argumentów InvokeProcess
FileName (String): należy określić FileName procesu, który ma być uruchomiony (program do uruchomienia).Na przykład: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.
Argumenty (String): można określić argumenty wiersza polecenia (Arguments), które mają być przekazywane do procesu.
EnvironmentVariables (IDictionary<String,String>): można określić dodatkowe zmienne środowiskowe (EnvironmentVariables) oraz ich wartości.
OutputEncoding (Encoding): można określić kodowanie używane do odczytywania danych wyjściowych (StandardOutputEncoding) i strumieni błędów (RedirectStandardError).W wielu przypadkach wartość domyślna jest najlepszą wartością dla tej właściwości:
System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
WorkingDirectory (String): można określić katalog roboczy (WorkingDirectory), w którym ma być uruchomiony proces.
Można na przykład uruchomić narzędzie MarkBins.exe dla skompilowanych plików binarnych.Aby zawęzić zakres, w którym działa narzędzie, można wywołać GetBuildDirectory i umieścić wynik w tej właściwości.
Aby wyświetlić wyjście standardowe i dane wyjściowe błędów procesu
W działaniu InvokeProcess kliknij dwukrotnie Kliknij dwukrotnie, aby wyświetlić.
Przeciągnij działanie WriteBuildMessage z przybornika, tak aby pojawiło się pod Obsługa standardowego wyjścia i ustaw właściwość WriteBuildMessageKomunikat na stdOutput.
Przeciągnij działanie WriteBuildError z przybornika, tak aby pojawiło się ono pod Obsługa standardowego wyjścia i ustaw właściwość WriteBuildMessageKomunikat na errOutput.
Praca z kontrolą wersji
Można użyć działań Team Foundation Build do wykonania następujących zadań kontroli wersji:
Skojarz grupę zmian i elementy robocze z kompilacją
Zaewidencjonuj zmiany warunkowe
Oceń zasady ewidencjonowania
Oznacz pliki w kontroli wersji
Skojarz grupy zmian i elementy robocze z kompilacją (działanie AssociateChangesetsAndWorkItems)
Użyj działania AssociateChangesetsAndWorkItems, aby połączyć każdą zakończoną kompilację z zestawami zmian, które przekazane zostały do kodu i skojarzonych elementów roboczych.
Każda definicja kompilacji przechowuje swój własny rekord, określający, które grupy zmian i elementy robocze oczekują na skojarzenie z następną zakończoną kompilacją.Na przykład zarówno Kompilacja A, jak i Kompilacja B mogą kompilować grupę zmian 382.Kompilacja A jest dodana do kolejki i zakończona pomyślnie, lecz Kompilacja B jest dodana do kolejki i zakończona niepowodzeniem.Zestaw zmian 382 jest teraz połączony z zakończoną pomyślnie Kompilacją A i zakończoną niepowodzeniem Kompilacją B. Zestaw zmian 382 nie będzie połączony z następną ukończoną kompilacją Kompilacji A, lecz zostanie połączony z następną pomyślnie zakończoną kompilacją Kompilacji B.
WłaściwośćWynik AssociateChangesetsAndWorkItems (IList<Changeset>)
Zwraca zestawy zmian skojarzone z kompilacją.
Właściwości argumentów AssociateChangesetsAndWorkItems
CurrentLabel (String): należy pozostawić tę właściwość pustą.
LastLabel (String): należy pozostawić tę właściwość pustą.
UpdateWorkItems (Boolean): można ustawić wartość tej właściwości na True, aby wypełnić pole Poprawiony skojarzonych elementów roboczych numerem kompilacji.W przeciwnym wypadku ustaw wartość False.
Powrót do początku
Zaewidencjonuj bramkowane zmiany (działanie CheckInGatedChanges)
Użyj działania CheckInGatedChanges do zaewidencjonowania w kontroli wersji zmian kodu, które wywołały kompilację bramkowaną warunkowo.To działanie także kojarzy kompilację z elementami roboczymi, które są skojarzone z zestawem zmian.
[!UWAGA]
Aby funkcjonowało poprawnie, działanie musi być umieszczone po wszystkich implementacjach działań MSBuild i MSTest w szablonie.
WłaściwośćWynik CheckInGatedChanges (Changeset)
Zwraca zestaw zmian zawierający aktualnie ewidencjonowane zmiany.
Właściwości argumentów CheckInGatedChanges
IgnoreErrors (Boolean): należy ustawić tę właściwość na False, aby zezwolić na sprawdzanie plików tylko wtedy, gdy obie właściwości CompilationStatus i TestStatus mają wartość Succeeded.Ustaw tę właściwość na True, aby umożliwić zaewidencjonowanie plików niezależnie od wartości tych właściwości.
[!UWAGA]
Można użyć działania SetBuildProperties, aby ustawić właściwości CompilationStatus i TestStatus.
UpdateWorkItems (String): należy ustawić tę wartość na True, aby wypełnić pole Poprawiony skojarzonych elementów roboczych numerem kompilacji.W przeciwnym wypadku ustaw False.
Powrót do początku
Oceń zasady ewidencjonowania (działanie EvaluateCheckInPolicies)
Użyj działania EvaluateCheckInPolicies, aby uruchomić zasady ewidencjonowania na serwerze kompilacji.To działanie uruchamia zasady ewidencjonowania, które obowiązują dla folderów określonych na karcie Obszar roboczy definicji kompilacji.Kompilacja kończy się niepowodzeniem, jeśli zasady ewidencjonowania są błędne i przyczyną kompilacji jest CheckInShelveset (kompilacja ewidencjonowana warunkowo) lub ValidateShelveset (kompilacja prywatna).
Ważne |
---|
Zasady ewidencjonowania są oceniane na serwerze kompilacji, nie na komputerze klienckim dewelopera. |
Najbardziej wydajnym wykorzystaniem tego działania jest wymuszenie wyższej jakości warunkowania przez używanie go wraz z kompilacjami ewidencjonowanymi warunkowo.Jeśli używasz działania w taki sposób, użytkownik nie będzie mógł obejść zasad ewidencjonowania.To działanie jest najbardziej użyteczne dla następujących typów zasad ewidencjonowania:
Wbudowane zasady ewidencjonowania Work Items
Niestandardowe zasady ewidencjonowania, które są stworzone tak, aby były oceniane na serwerze kompilacji
Działanie to nie jest przydatne przy ocenie wbudowanych zasad ewidencjonowania Builds czy Code Analysis, ponieważ procesy te można efektywniej uruchomić bezpośrednio w kompilacji za pomocą działań MSBuild i MSTest.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
Aby uzyskać informacje dotyczące wbudowanych zasad ewidencjonowania, zobacz Add Check-In Policies.
Aby uzyskać informacje dotyczące niestandardowych zasad ewidencjonowania, zobacz Jak: Utworzyć niestandardowe zasady ewidencjonowania w programie Visual Studio Team Foundation Server.
Aby uzyskać informacje dotyczące kompilacji ewidencjonowanych warunkowo, zobacz Użycie procesu kompilacji ewidencjonowania warunkowego do sprawdzenia poprawności zmian
Aby uzyskać informacje dotyczące kompilacji prywatnych, zobacz Kolejkowanie kompilacji
Właściwości argumentów EvaluateCheckInPolicies
- Obszar roboczy (Workspace): należy określić obszar roboczy do oceny.W większości przypadków należy ustawić tę właściwość na zmienną inicjowaną we właściwości Wynik działania CreateWorkspace.Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.
Powrót do początku
Oznacz pliki w kontroli wersji
Można oznaczyć pliki za pomocą działań Team Foundation Build:
Oznacz kod źródłowy, który jest kompilowany
Oznacz pliki
Oznacz kod źródłowy, który jest kompilowany (działanie LabelWorkspace)
Należy oznaczyć pliki kodu źródłowego w kontroli wersji, tak aby zespół mógł łatwo identyfikować, która wersja każdego z plików jest dołączona do zakończonej kompilacji.Użyj działania LabelWorkspace, aby uwzględnić ten krok w procesie kompilacji.
Właściwości argumentów LabelWorkspace
Nazwa (String): należy określić nazwę etykiety.
Element podrzędny (LabelChildOption): można określić sposób obsługi elementów, które mają już etykiety odpowiadające określonej etykiecie.Właściwość ta jest równoważna opcji /child polecenia tf label.
Obszar roboczy (Workspace): należy podać odwołanie do obszaru roboczego tej kompilacji.W większości przypadków należy ustawić właściwość zmiennej inicjowanej we właściwości Wynik działania CreateWorkspace.Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.
Komentarz (String): można określić komentarz dla etykiety.Właściwość ta jest równoważna opcji /comment polecenia tf label.
Zakres (String): można określić zakres dla etykiety.Właściwość ta jest równoważna z argumentem @scope polecenia tf label.
Aby uzyskać więcej informacji dotyczących parametrów tf label, zobacz Label Command (Team Foundation Version Control).
Powrót do początku
Oznacz pliki (działanie LabelSources)
Użyj działania LabelSources, aby oznaczyć pliki w kontroli wersji.
Porada |
---|
Często można efektywniej oznaczać kompilowane pliki kodu źródłowego, korzystając z działania LabelWorkspace. |
Właściwości argumentów LabelSources
Elementy (IEnumerable<String>): należy określić elementy, które chcesz oznaczyć.Każdy String jest równoważny z argumentem itemspec polecenia tf label.
Nazwa (String): należy określić nazwę etykiety.
Zakres (String): należy określić zakres dla etykiety.Właściwość ta jest równoważna z argumentem @scope polecenia tf label.
Cykl (RecursionType): można określić Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full, aby oznaczyć wszystkie pliki w hierarchii katalogów.W przeciwnym razie można określić Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.
Wersja (String): należy podać wersję elementów do oznaczenia.Właściwość ta jest równoważna opcji /version polecenia tf label.
Element podrzędny (LabelChildOption): można określić sposób obsługi elementów zawierających etykiety, które odpowiadają określonej etykiecie.Właściwość ta jest równoważna opcji /child polecenia tf label.
Komentarz (String): można określić komentarz dla etykiety.Właściwość ta jest równoważna opcji /comment polecenia tf label.
Aby uzyskać więcej informacji dotyczących parametrów tf label, zobacz Label Command (Team Foundation Version Control).
Powrót do początku
Pobieranie listy zmian odłożonych na półkę (działanie QueryShelvesets)
Użyj działania QueryShelvesets, aby uzyskać listę zestawów zmian odłożonych na półkę, które spełniają kryteria.Możesz następnie użyć działania TfUnshelve, aby pobrać zawartość dowolnego zestawu zmian odłożonych na półkę.
Wynik QueryShelvesets (IList<Shelveset>)
Właściwości argumentów QueryShelvesets
VersionControlServer (VersionControlServer): należy określić VersionControlServer.
Działanie TfGet
To działanie otacza Polecenie Get.
Działanie TfResolve
To działanie otacza Resolve Command.
Działanie TfShelve
To działanie otacza Polecenie shelve.
Działanie TfUndo
To działanie otacza Polecenie Undo.
Działanie TfUnshelve
To działanie otacza Polecenie unshelve.
Działanie TfWorkfold
To działanie otacza Workfold Command.
Pracuj z elementami roboczymi
Można pracować z elementami roboczymi, używając działań Team Foundation Build:
Skojarz grupę zmian i elementy robocze z kompilacją
Utwórz element pracy
Tworzenie elementu roboczego (działanie OpenWorkItem)
Użyj działania OpenWorkItem, aby utworzyć element roboczy.
WłaściwośćWynik OpenWorkItem (WorkItem)
Zwraca nowy element roboczy.
Właściwości argumentów OpenWorkItem
AssignedTo (String): należy określić osobę, do której chcesz przypisać element roboczy.
Tytuł (String): należy określić tytuł elementu roboczego.
Typ (String): należy określić typ elementu roboczego.Typowe wartości Typ to na przykład: “Bug”, “Issue” i “Task”.
Komentarz (String): można dodać komentarz do historii elementu roboczego.
CustomFields (IDictionary<String,String>): można określić wartość jednego lub więcej pól elementu roboczego.
Powrót do początku
Pracuj z danymi symbolicznymi
Można pracować z danymi symbolicznymi, używając dwóch działań Team Foundation Build: IndexSources i PublishSymbols.
Typowym zastosowaniem tych działań jest włączenie debugowania IntelliTrace.Aby włączyć debugowanie IntelliTrace, należy najpierw wywołać działanie IndexSources w celu przygotowania danych symbolicznych, a następnie wywołać działanie PublishSymbols w celu opublikowania danych w magazynie symboli SymStore.
Aby uzyskać więcej informacji dotyczących debugowania IntelliTrace, zobacz Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace.
Osadzanie wersji i ścieżek kontroli wersji w danych symbolicznych w plikach PDB (działanie IndexSources)
Użyj działania IndexSources, aby osadzić ścieżki kontroli wersji i wersje w danych symbolicznych w plikach .pdb.
Właściwości argumentów IndexSources
FileList (IEnumerable<String>): należy określić pełną ścieżkę i nazwę każdego pliku symboli.Można użyć działania FindMatchingFiles w celu dostarczenia tego argumentu.
Można użyć ** w celu określenia wyszukiwania cyklicznego.Można na przykład wywołać FindMatchingFiles z następującą wartością we właściwości MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).
Powrót do początku
Publikuj symbole do magazynu symboli SymStore (działanie PublishSymbols)
Użyj działania PublishSymbols do publikowania danych symbolicznych z plików PDB do magazynu symboli SymStore.Działanie to jest zasadniczo otoką nad SymStore.exe.Aby uzyskać informacje dotyczące magazynów symboli SymStore oraz przygotowania magazynu, zobacz Indeksowanie i publikowanie danych symbolicznych.
Ważne |
---|
Dane mogą zostać uszkodzone, jeśli kompilacje współbieżne będą próbowały opublikować taki sam udział plików symboli.Aby ograniczyć to ryzyko, działanie powinno być wywołane tylko wewnątrz działania SharedResourceScope. |
WłaściwośćWynik PublishSymbols (String)
Zwraca identyfikator transakcji zwracany przez SymStore.exe.
Właściwości argumentów PublishSymbols
FileList (IEnumerable<String>): należy określić pełną ścieżkę i nazwę każdego pliku symboli.Można użyć działania FindMatchingFiles w celu dostarczenia tego argumentu.
Można na przykład wywołać FindMatchingFiles z następującą wartością we właściwości MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).
StorePath (String): należy określić ścieżkę pliku UNC do głównego folderu magazynu symboli SymStore.
CommandLineArguments (String): aby uzyskać informacje dotyczące dodatkowych argumentów, które można przekazywać do SymStore.exe, zobacz Opcje wiersza polecenia SymStore.
Komentarze (String): można określić komentarze transakcji, które są rejestrowane w pliku historii transakcji w magazynie symboli.Właściwość ta jest równoważna parametrowi /c Comment polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.
ProductName (String): można określić nazwę produktu zarejestrowaną w pliku historii transakcji w magazynie symboli.Można na przykład ustawić tę właściwość na nazwę definicji kompilacji (Name), którą można uzyskać z właściwości BuildDefinition, wywołując GetBuildDetail.Właściwość ta jest równoważna parametrowi /t Product polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.
StoreCompressed (Boolean): można ustawić tę wartość na True, aby przechowywać pliki w magazynie symboli jako pliki skompresowane.W przeciwnym razie pliki będą przechowywane jako nieskompresowane.Właściwość ta jest równoważna parametrowi /compress polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.
Wersja (String): można na przykład ustawić tę właściwość dla numeru kompilacji (BuildNumber), uzyskanego przez wywołanie GetBuildDetail.Właściwość ta jest równoważna parametrowi /v Version polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.
Powrót do początku
Pobieranie odwołań do przydatnych obiektów
Można uzyskać odwołania do przydatnych obiektów przy użyciu działań Team Foundation Build.
Pobieranie odwołania do obiektu kolekcji projektów zespołowych (działanie GetTeamProjectCollection)
Użyj działania GetTeamProjectCollection, aby pobrać z jego właściwości Wynik odwołanie do obiektu TfsTeamProjectCollection.Ten obiekt startowy jest ważny; można na przykład użyć go do połączenia z serwerem w warstwie aplikacji dla Team Foundation.
Pobieranie odwołania do obiektu IBuildAgent (działanie GetBuildAgent)
Użyj działania GetBuildAgent, aby pobrać z jego właściwości Wynik odwołanie do obiektu IBuildAgent.Działania tego można użyć tylko wewnątrz działania AgentScope.
Pobieranie odwołania do obiektu IBuildDetail (działanie GetBuildDetail)
Użyj działania GetBuildDetail, aby uzyskać z jego właściwości Wynik odwołanie do obiektu IBuildDetail.Można użyć tego obiektu, aby pobrać i w niektórych przypadkach ustawić dane dotyczące bieżącej kompilacji.
Powrót do początku
Pobieranie odwołania do obiektu BuildEnvironment (działanie GetBuildEnvironment)
Użyj działania GetBuildEnvironment, aby pobrać za pośrednictwem jego właściwości Wynik odwołanie do obiektu BuildEnvironment.Ta właściwość jest zazwyczaj używana do wykonywania następujących zadań:
Użyj obiektu Environment, aby ustalić, czy bieżący segment przepływu pracy jest uruchomiony na kontrolerze kompilacji lub agencie kompilacji.
Użyj obiektu CustomAssemblyPath, aby pobrać ścieżkę do zestawów zawierających niestandardowe działania w agencie kompilacji.
Powrót do początku
Działania, które nie są przeznaczone do modyfikowania w niestandardowym procesie kompilacji
Niektóre działania nie są przeznaczone do modyfikowania w niestandardowym procesie kompilacji.
ApproveRequestForCheckIn
Ignoruj to działanie.
Powrót do początku
Działanie CreateWorkspace
Ignoruj to działanie.
Powrót do początku
DeleteWorkspace
Ignoruj to działanie.
Powrót do początku
GenerateRunSettings
Ignoruj to działanie.
Powrót do początku
GetApprovedRequests
Ignoruj to działanie.
Powrót do początku
GetPendingChanges
Ignoruj to działanie.
Powrót do początku
GetRejectedRequests
Ignoruj to działanie.
Powrót do początku
GetReshelvedShelveset
Ignoruj to działanie.
Powrót do początku
GetShelvedChanges
Ignoruj to działanie.
Powrót do początku
GetWorkspace
Ignoruj to działanie.
Powrót do początku
ParseWorkspaceSpec
Ignoruj to działanie.
Powrót do początku
RejectRequestFromCheckIn
Ignoruj to działanie.
Powrót do początku
RetryRequest
Ignoruj to działanie.
Powrót do początku
RetryRequests
Ignoruj to działanie.
Powrót do początku
RevertWorkspace
Ignoruj to działanie.
Powrót do początku
RunOnce
Nie udokumentowano w bieżącej wersji.
SyncWorkspace
Ignoruj to działanie.
Powrót do początku
SynchronizeRequests
Ignoruj to działanie.
Powrót do początku
Działanie TfsBuild
Ignoruj to działanie.
Powrót do początku
TfQueryConflicts
Ignoruj to działanie.
Powrót do początku
Zobacz też
Koncepcje
Użycie szablonów domyślnych w procesie kompilacji
Wdrażanie i konfigurowanie kontrolera kompilacji
Wdrażanie i konfigurowanie agentów kompilacji
Inne zasoby
Program Visual Studio 2010 Workflow Designer