Udostępnij za pośrednictwem


Określ wyzwalaczy kompilacji i przyczyny

Kiedy tylko jest taka potrzeba, można ręcznie kolejkować kompilację, ale potrzeby zespołu będą w większości przypadków najlepiej zaspokojone przez procesy kompilacji, zdefiniowane przy użyciu automatycznych wyzwalaczy.Gdy kompilacja zostaje wyzwolona, określona jej przyczyna jest rejestrowana we właściwości Reason.W tym temacie opisano i wyjaśniono, jak używać wszystkich dostępnych wyzwalaczy i powodów kompilacji podczas opracowywania procesu kompilacji.

  • Użyj wyzwalaczy kompilacji, aby osiągnąć cele zespołu

    • Chroń swój zespół przed naruszeniami kompilacji

    • Utrzymuj jakość poprzez ciągłą integrację

    • Sprawdzaj jakość produktu, co noc uruchamiając BVT

  • Użycie automatycznych wyzwalaczy kompilacji

    • Użyj wyzwalacza ciągłej integracji, by kolejkować kompilację, gdy pojawia się zmiana

    • Użyj wyzwalacza stopniowej kompilacji, by kolejkować kompilację, gdy pojawia się zmiana, ale z ograniczeniem częstości uruchomień kompilacji

    • Użyj wyzwalacza wejściowego, by kolejkować kompilację, gdy członek zespołu próbuje wprowadzić zmianę, oraz zablokować zmianę, gdy kompilacja nie powiedzie się

    • Użyj wyzwalacza harmonogramu, by kolejkować kompilację w regularnych odstępach czasu

  • Ręcznie kolejkowanie kompilacji

    • Kolejkowanie kompilacji

    • Kolejkowanie prywatnej kompilacji

  • Użycie niestandardowego kodu do kolejkowania kompilacji

  • Praca z wyzwalaczami kompilacji i przyczynami

Użyj wyzwalaczy kompilacji, aby osiągnąć cele zespołu

Hh190718.collapse_all(pl-pl,VS.110).gifChroń swój zespół przed naruszeniami kompilacji

Gdy deweloper wprowadza zmianę, która narusza kompilację, wynik może spowodować znaczące problemy dla małych zespołów.Dla większych zespołów może to być kosztowne, mierzone przez utratę produktywności i opóźnienia harmonogramu.Można użyć wyzwalacza ewidencjonowanego warunkowo do zabezpieczenia części lub całości bazy kodu przeciwko temu problemowi.

Hh190718.collapse_all(pl-pl,VS.110).gifUtrzymuj jakość poprzez ciągłą integrację

Ciągła Integracja jest procesem integrowania kodu do udostępnionego repozytorium tak często, jak jest to możliwe.Podczas integracji kodu, naruszenie kompilacji lub niepowodzenie testu może wcześniej poinformować o błędzie w kodzie.Można użyć wyzwalacza ciągłej integracji do zaimplementowania ciągłej integracji.Wyzwalacz stopniowej kompilacji jest podobny do wyzwalacza ciągłej integracji i może być przydatny, gdy nie posiadasz wystarczająco wydajnego systemu kompilacji, by przeprowadzał kompilacją za każdym razem, gdy pojawi się zmiana.

Wyzwalacz ewidencjonowany warunkowo może służyć jako bardziej rygorystyczne podejście do ciągłej integracji.Wyzwalacz ciągłej integracji ostrzega zespół o problemach takich jak naruszenie kompilacji lub niepowodzenie kluczowych testów jednostkowych, a wyzwalacz ewidencjonowany warunkowo blokuje tego typu problemy przed wprowadzeniem do bazy kodu.

Aby uzyskać więcej informacji, w jaki sposób używać systemu kompilacji do wspierania do wspierania ciągłej integracji, zobacz Zdefiniowanie procesu tworzenia wspieranie ciągłej integracji i Tworzenie i wdrażanie w sposób ciągły.

Hh190718.collapse_all(pl-pl,VS.110).gifSprawdzaj jakość produktu, co noc uruchamiając BVT

Możesz zaplanować regularne testy do oszacowania jakości kompilacji.Testy te są często nazywane testami weryfikacji kompilacji (BVT) lub testami dymu.Składają się zazwyczaj z szerokiego pakietu testów, które są używane do weryfikacji kluczowych obszarów aplikacji w określonej kompilacji.Można użyć wyzwalacza harmonogramu do zaimplementowania nocnych testów BVT.

Aby uzyskać więcej informacji na temat wyzwalacza harmonogramu, zobacz Use Schedule to queue a build on a regular interval.Aby uzyskać więcej informacji na temat, w jaki sposób skonfigurować proces BVT, zobacz Jak: Konfigurowanie i Uruchom zaplanowane badania po budowanie aplikacji.

Użycie automatycznych wyzwalaczy kompilacji

Należy określić wyzwalacz kompilacji odpowiedni dla definicji kompilacji użytkownika.W większości przypadków, proces kompilacji będzie uruchamiany automatycznie.Możesz wybrać jeden z automatycznych wyzwalaczy opisanych w tej sekcji.

Hh190718.collapse_all(pl-pl,VS.110).gifUżyj wyzwalacza ciągłej integracji, by kolejkować kompilację, gdy pojawia się zmiana

W przypadku zdefiniowania kompilacji z użyciem wyzwalacza ciągłej integracji, kompilacja jest kolejkowana za każdym razem, gdy członek zespołu wprowadza zmianę.Definicja obszaru roboczego kompilacji określa pliki, które wyzwalają definicję kompilacji.Aby uzyskać więcej informacji o obszarach roboczych kompilacji, zobacz Praca z obszarami roboczymi kompilacji.

Kompilacje wyzwalane przez ciągłą integrację mają przypisany parametr Reason z IndividualCI.

Hh190718.collapse_all(pl-pl,VS.110).gifUżyj wyzwalacza stopniowej kompilacji, by kompilować wiele zmian jednocześnie w regularnych odstępach.

W przypadku zdefiniowania kompilacji z wyzwalaczem stopniowej kompilacji, system kompilacji kolejkuje kompilację każdej zmiany, póki kompilacja nie zostanie uruchomiona.Jeśli kompilacja jest uruchomiona, system czeka, aż kompilacja zostanie ukończona, a następnie kolejkuje kolejną kompilację wszystkich zmian, które jeszcze nie były skompilowane.Możesz również ograniczyć częstotliwość kompilacji, jeśli zaznaczysz pole wyboru Kompiluj nie częściej niż con minut i wpiszesz wartość całkowitą z przedziału 0 do 2147483647.

Na przykład, możesz mieć tylko jednego agenta kompilacji i może on kończyć kompilację co 20 minut.Przy użyciu wyzwalacza ciągłej integracji, gdy zespół zaktualizuje kod dziewięciokrotnie pomiędzy 10 .rano. i 11 .rano., ostatnia aktualizacja może zostać skompilowana dopiero po 13 .. Jednakże, używając wyzwalacza stopniowej kompilacji i określając interwał na 60 minut, ten sam zestaw aktualizacji może zostać skompilowany przed 11:20..

Definicja obszaru roboczego kompilacji określa pliki, które wyzwalają definicję kompilacji.Aby uzyskać więcej informacji o obszarach roboczych kompilacji, zobacz Praca z obszarami roboczymi kompilacji.

Kompilacje wyzwalane przez stopniowe kompilacje mają przypisany parametr Reason z BatchedCI.

Hh190718.collapse_all(pl-pl,VS.110).gifUżyj wyzwalacza wejściowego, by kolejkować kompilację, gdy członek zespołu próbuje wprowadzić zmianę, oraz zablokować zmianę, gdy kompilacja nie powiedzie się

W przypadku zdefiniowania kompilacji z wyzwalaczem wejściowym, zmiany dodane przez członka zespołu do systemu kontroli wersji zostaną oznaczone jako oczekujące i dodane do kolejki do kompilacji.Kompilacja musi zakończyć się powodzeniem, aby proces aktualizacji mógł być ukończony.Definicja obszaru roboczego kompilacji określa pliki, są kontrolowane przez definicję kompilacji.Aby uzyskać więcej informacji o obszarach roboczych kompilacji, zobacz Praca z obszarami roboczymi kompilacji.

Kompilacje wyzwalane przez wyzwalacz ewidencjonowania warunkowego mają przypisany parametr Reason z CheckInShelveset.

Aby uzyskać więcej informacji na temat implementacji wyzwalacza ewidencjonowania warunkowego, zobacz Zdefiniowanie procesu Gated kompilacji wyboru, aby zatwierdzić zmiany.Aby uzyskać więcej informacji o tym w jaki sposób ten typ definicji kompilacji dotyka zespół, zobacz Budowanie wyboru w oczekujące zmiany, które są kontrolowane przez Gated Zaewidencjonuj.

Hh190718.collapse_all(pl-pl,VS.110).gifUżyj wyzwalacza harmonogramu, by kolejkować kompilację w regularnych odstępach czasu

Hh190718.collapse_all(pl-pl,VS.110).gifWyzwalacz harmonogramu

W przypadku zdefiniowania kompilacji z wyzwalaczem harmonogramu i wyczyszczenia pola wyboru Kompiluj nawet, gdy brak zmian od poprzedniej kompilacji, kompilacja jest kolejkowana w tych dniach i godzinach, które określono, jeśli zmiany pojawiły się od ostatniego uruchomiania tej definicji kompilacji.Kompilacja jest kolejkowana niezależnie od tego, czy zmiany były skojarzone z ostatnią dobrą kompilacją.

Kompilacje, które są wyzwalane w ten sposób, mają przypisany parametr Reason z Schedule.

PoradaPorada

Jeśli projektujesz niestandardowy szablon procesu kompilacji i zaznaczysz Schedule jako wartość właściwości Przyczyna w sekcji szablonu Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz) (działanie InvokeForReason), w większości przypadków prawdopodobnie należy również zaznaczyć ScheduleForced.

Hh190718.collapse_all(pl-pl,VS.110).gifWyzwalacz harmonogramu (Przyczyna: ScheduleForced)

W przypadku zdefiniowania kompilacji z wyzwalaczem harmonogramu i zaznaczenia pola wyboru Kompiluj nawet, gdy brak zmian od poprzedniej kompilacji, kompilacja jest kolejkowana w tych dniach i godzinach, które zostały określone.Kompilacja jest kolejkowana niezależnie od tego, czy zaszły jakieś zmiany.

Kompilacje, które są wyzwalane w ten sposób, mają przypisany parametr Reason z ScheduleForced.

PoradaPorada

Jeśli projektujesz niestandardowy szablon procesu kompilacji i zaznaczysz ScheduleForced jako wartość właściwości Przyczyna w sekcji szablonu Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz) (działanie InvokeForReason), w większości przypadków prawdopodobnie należy również zaznaczyć Schedule.

Ręcznie kolejkowanie kompilacji

w niektórych sytuacjach proces kompilacji nie musi być uruchamiany automatycznie.

  • Definicja kompilacji może nie być gotowa na automatyczne uruchomienia, ponieważ wciąż jest w fazie tworzenia.

  • Możesz posiadać specjalny proces kompilacji, który chcesz uruchamiać tylko ręcznie.

W takich sytuacjach można zaznaczyć wyzwalacz ręczny.Definicja kompilacji zostanie uruchomiona tylko wtedy, gdy członek zespołu zakolejkuje ją ręcznie.

Hh190718.collapse_all(pl-pl,VS.110).gifKolejkowanie kompilacji

Możesz ręcznie zakolejkować każdą definicję kompilacji, nawet jeśli jest zdefiniowana z wyzwalaczem innym niż ręczny.Podczas ręcznego kolejkowania kompilacji, parametr Reason jest ustawiany na Manual.Aby uzyskać więcej informacji o sposobie ręcznego kolejkowania kompilacji, zobacz Kolejka kompilacji.

Hh190718.collapse_all(pl-pl,VS.110).gifKolejkowanie prywatnej kompilacji

Jeśli chcesz skompilować zmiany, które zostały oznaczone jako oczekujące, możesz użyć prywatnej kompilacji (znanej również jako "buddy build"), by weryfikować zmiany kodu przed jego wysłaniem.Podczas ręcznego kolejkowania prywatnej kompilacji, parametr Reason jest ustawiany na ValidateShelveset.Aby uzyskać więcej informacji o sposobie kolejkowania prywatnej kompilacji, zobacz Kolejka kompilacji.

Użycie niestandardowego kodu do tworzenie kompletnej kompilacji

Można zaprojektować niestandardowy kod tworzący kompletną kompilację, wykorzystując klasy z przestrzeni nazw Microsoft.TeamFoundation.Build.Gdy kompilacja jest w ten sposób kolejkowana, parametr Reason jest ustawiany na UserCreated.Aby uzyskać więcej informacji, zobacz Extending Team Foundation: Build

Praca z wyzwalaczami kompilacji i przyczynami

Możesz wykorzystać wyzwalacze i przyczyny w procesie kompilacji w następujące sposoby:

  • Ustawienie wyzwalacza dla procesu kompilacji: W swojej definicji kompilacji, kliknij kartę Wyzwalacz, a następnie zaznacz wyzwalacz, który najlepiej zaspokaja potrzeby zespołu.Aby uzyskać więcej informacji na temat sposobu tworzenia definicji kompilacji, zobacz Utwórz definicję kompilacji.

  • Zdefiniowanie, które przyczyny kompilacji są akceptowane przez niestandardowy proces kompilacji: Możesz użyć aktywności InvokeForReason, by ująć segment procesu kompilacji, który chcesz, by był uruchamiany tylko w kompilacjach uruchamianych z określonej przyczyny.Aby uzyskać więcej informacji, zobacz Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz) (działanie InvokeForReason).