Aracılığıyla paylaş


Yapı tetikleyicilerini ve nedenlerini belirtme

Bir yapıyı gerektiğinde el ile sıraya alabilirsiniz, ancak takımınızın gereksinimleri çoğu zaman en iyi şekilde otomatik Tetikleyiciler ile tanımlanan yapı işlemleri tarafından karşılanır.Bir yapı tetiklendiğinde, belirli bir neden Reason özelliğine kaydedilir.Bu konuda, yapı işleminizi geliştirirken uygun tüm yapı tetikleyicilerinin ve yapı nedenlerinin nasıl kullanacağı anlatılmakta ve açıklanmaktadır.

  • Takım Hedeflerine Ulaşmak için Yapı Tetikleyicilerini Kullanma

    • Takımınızı yapı sonlarından koruma

    • Sürekli tümleştirmeyi kullanarak kaliteyi koruma

    • Gece BVT'lerini çalıştırarak ürün kalitesini denetleme

  • Otomatik Yapı Tetikleyicileri Kullanma

    • Bir değişiklik iade edildiğinde yapıyı sıraya almak için Sürekli Tümleştirme tetikleyicisini kullanma

    • Bir değişiklik yapının ne sıklıkta çalıştırıldığına yönelik sınırlarla birlikte iade edildiğinde bir yapıyı sıraya almak için Çalışan yapılar tetikleyicisini kullanma

    • Bir takım üyesi bir değişikliği iade etmeyi denediğinde bir yapıyı sıraya almak ve yapı başarısız olursa değişikliği engellemek için Geçitli İade tetikleyicisini kullanma

    • Bir yapı normal bir aralıkta sıraya almak için Zamanlama tetikleyicisini kullanma

  • Bir Yapıyı El ile Sıraya Alma

    • Bir yapıyı sıraya alma

    • Özel bir yapıyı sıraya alma

  • Yapıyı Sıraya Almak için Özel Kod Kullanma

  • Yapı Tetikleyicileri ve Nedenlerle Çalışma

Takım Hedeflerine Ulaşmak için Yapı Tetikleyicilerini Kullanma

Takımınızı yapı sonlarından koruma

Bir geliştirici yapıyı sonlandıran değişiklikleri iade ederken, sonuçta küçük takımlar için önemli bir sorun oluşabilir.Büyük takımlar için ortaya çıkan maliyet, verimlilik kaybı ve zamanlama gecikmeleri bakımından ölçüldüğünde fazla olabilir.Bu soruna karşı kod tabanınızın bir kısmını veya tümünü korumak için Geçitli İade tetikleyicisini kullanabilirsiniz.

Sürekli tümleştirmeyi kullanarak kaliteyi koruma

Sürekli tümleştirme, kodunuzu mümkün olduğunca sık paylaşılan bir depoya tümleştirme işlemidir.Kod tümleştirmesi sırasında bir yapı sonu veya test hatası, kodunuzdaki bir hatayı zamanında bildirebilir.Sürekli tümleştirmeyi uygulamak için Sürekli Tümleştirme tetikleyicisini kullanabilirsiniz.Çalışan yapılar tetikleyicisi Sürekli Tümleştirme tetikleyicisine benzer ve iadenin meydana geldiği her seferde bir yapıyı yürütmek için yeteri kadar güçlü bir yapı sistemine sahip değilseniz faydalı olabilir.

Geçitli İade tetikleyicisi sürekli tümleştirmeye için daha zorlu bir yaklaşım sunabilir.Sürekli Tümleştirme tetikleyicisi, yapı sonları veya başarısız çekirdek birim testleri gibi sorunlar için takımınızı uyarır, ancak Geçitli İade tetikleyicisi bu tarz sorunların kod temelinize yansıtılmasını önler.

Yapı sisteminizi sürekli tümleştirmeyi desteklemek için nasıl kullanılacağınız hakkında daha fazla bilgi için bkz. Bir CI yapısı kurma.

Gece BVT'lerini çalıştırarak ürün kalitesini denetleme

Yapınızın kalitesini değerlendirmek için normal test çalıştırmalarını zamanlayabilirsiniz.Bu testler, çoğunlukla yapı doğrulama testi (BVT'ler) veya duman testi olarak adlandırılır.Bu testler belirli bir yapıda bulunan uygulamaya ilişkin anahtar alanlarını doğrulamak için kullanılan testlerin geniş bir paketini içerir.Gecelik BVT çalıştırmalarını yürütmek için Zamanlama tetikleyicisini kullanabilirsiniz.

Zamanlama tetikleyicisi hakkında daha fazla bilgi için bkz. Bir yapıyı normal bir aralıkta sıraya almak için Zamanlamayı kullanma.

Otomatik Yapı Tetikleyicileri Kullanma

Yapı tanımı için bir yapı tetikleyicisi belirtmeniz gerekir.Çoğu durumda, yapı işleminizin otomatik olarak çalışmasını isteyeceksiniz.Bu bölümde açıklanan otomatik tetikleyicilerden birini seçebilirsiniz.

Bir değişiklik iade edildiğinde yapıyı sıraya almak için Sürekli Tümleştirme tetikleyicisini kullanma

Bir yapıyı Sürekli Tümleştirme tetikleyicisi ile birlikte tanımlarsanız, bir takım üyesi bir değişikliği iade ederse yapı sıraya alınır.Çalışma Alanı yapı tanımı hangi dosyaların yapı tanımını tetikleyeceğini belirler.Yapı çalışma alanları hakkında daha fazla bilgi için bkz. Yapı çalışma alanlarıyla çalışma.

Sürekli Tümleştirme tarafından tetiklenen yapılar IndividualCI kodunun Reason öğesine atanır.

Birden fazla iadeyi normal aralıklarda oluşturmak için Çalışan yapı tetikleyicilerini kullanma

Bir yapıyı Çalışan yapılar ile birlikte tanımlarsanız, yapı sistemi yapı çalışmadığı sürece her iadenin yapısını sıraya alır.Yapı çalışıyorsa, sistem yapı tamamlanana kadar bekler ve ardından daha oluşturulmamış iadelerin başka bir yapısını sıraya alır.Her n dakikadandaha fazla oluşturma onay kutusunu seçer ve 0 ile 2147483647 arasında bir tamsayı değeri yazarsanız, yapıların sıklığını da sınırlayabilirsiniz.

Örneğin, tek bir yapı aracısına sahip olabilirsiniz ve aracı yapınızı her 20 dakikada bir bitirebilir.Sürekli Tümleştirme tetikleyicisi kullanıyorsanız ve takımınız sabah 10-11 arası kodu dokuz kez iade ediyorsa, son iade saat 13'e kadar oluşturulmayabilir. Ancak Çalışan yapılar tetikleyicisini kullanıyorsanız ve aralık olarak 60 dakika belirtirseniz, aynı iade etme kümesi 11:20'ye kadar oluşturulabilir.

Çalışma Alanı yapı tanımı hangi dosyaların yapı tanımını tetikleyeceğini belirler.Yapı çalışma alanları hakkında daha fazla bilgi için bkz. Yapı çalışma alanlarıyla çalışma.

Çalışan yapılar tarafından tetiklenen yapılar BatchedCI kodunun Reason öğesine atanır.

Takım üyesi bir değişikliği iade etmeye çalıştığında yapıyı sıraya almak ve yapı başarısız olursa değişikliği engellemek için Geçitli İade tetikleyicisini kullanma

Bu tetikleyiciyi yalnızca bir TFVC simgesiTFVC takım projesi içinde kullanabilirsiniz; bir Git simgesiGit takım projesi'nde kullanamazsınız.

Geçitli İade tetikleyicisi ile birlikte bir yapı tanımlarsanız, bir takım üyesinin sürüm denetim sistemine gönderdiği değişiklikler raf kümesine yerleştirilir ve oluşturulmak üzere sıraya alınır.Yapı, iade işleminin tamamlanması için başarılı olmalıdır.Çalışma Alanı yapı tanımı hangi dosyaların yapı tanımı tarafından denetleneceğini belirler.Yapı çalışma alanları hakkında daha fazla bilgi için bkz. Yapı çalışma alanlarıyla çalışma.

Geçitli İade tarafından tetiklenen yapılar CheckInShelveset kodunun Reason öğesine atanır.

Geçitli İade tetikleyicisinin nasıl uygulanacağı hakkında daha fazla bilgi için bkz. Değişiklikleri doğrulamak için geçitli iade etme yapı işlemini kullanma.Bu tür bir yapı tanımının takımınızı nasıl etkilediği hakkında daha fazla bilgi için bkz. Bekleyen bir Gated iade tarafından denetlenen değişiklikleri iade etme oluşturmak.

Bir yapı normal bir aralıkta sıraya almak için Zamanlama tetikleyicisini kullanma

Zamanlama tetikleyicisi

Zamanlama tetikleyicisi ile birlikte bir yapı tanımlar ve Önceki yapıdan beri hiçbir değişik olmadıysa bile oluştur onay kutusunu temizlerseniz, yapı bu günlerde ve değişikler bu yapı tanımının en yakın zamanda yürütülmesinden bu yana kaydedilmişse belirteceğiniz zamanlarda sıraya alınır.Yapı değişikliklerin son iyi yapıyla ilişkilendirilip ilişkilendirilmemesinden bağımsız olarak sıraya alınır.

Bu şekilde tetiklenen yapılar Schedule kodunun Reason öğesine atanır.

İpucuİpucu

Özel yapı işlemi şablonu geliştiriyorsanız ve şablonunuzun InvokeForReason bölümünün Neden özelliğindeki Schedule'ı değer olarak seçerseniz, çoğu durumda muhtemelen ScheduleForced'ı seçmeniz gerekir.

Zamanlama tetikleyicisi (Nedeni: ScheduleForced)

Zamanlama tetikleyicisi ile birlikte bir yapı tanımlarsanız ve Bir önceki yapıdan bu yana hiçbir şey değişmediyse bile oluştur onay kutusunu seçerseniz, yapı bu günlerde ve belirttiğiniz zamanlarda sıraya alınır.Yapı değişiklikleri, değişikliklerin kaydedilip kaydedilmediğinden bağımsız olarak sıraya alınır.

Bu şekilde tetiklenen yapılar ScheduleForced kodunun Reason öğesine atanır.

İpucuİpucu

Özel yapı işlemi şablonu geliştiriyorsanız ve şablonunuzun InvokeForReason bölümünün Neden özelliğindeki ScheduleForced'ı değer olarak seçerseniz, çoğu durumda muhtemelen Schedule'ı seçmeniz gerekir.

Bir Yapıyı El ile Sıraya Alma

Belirli durumlarda, otomatik olarak çalışmasını istemediğiniz bir yapı işlemine sahip olabilirsiniz.

  • Yapı tanımınız, hala geliştirme sürecinde olduğundan otomatik yürütmeler için hazır olmayabilir.

  • Yalnızca el ile çalıştırmak istediğiniz bir özel yapı işlemine sahip olabilirsiniz.

Bu gibi durumlarda, El ile tetikleyicisini seçebilirsiniz.Yapı tanımı yalnızca bir takım üyesi el ile sıraya aldığında çalışacaktır.

Bir yapıyı sıraya alma

El ile'den başka bir yapı tetikleyicisi ile birlikte tanımlansa bile herhangi bir yapı tanımını el ile sıraya alabilirsiniz.Bir yapıyı el ile sıraya aldığınızda, Reason öğesi Manual'e ayarlanır.Bir yapıyı el ile sıraya alma hakkında daha fazla bilgi için bkz. Yapıyı sıraya koyma.

Özel bir yapıyı sıraya alma

Raf kümesine yerleştirdiğiniz değişiklikleri oluşturmak isterseniz, kodunuzu kaydetmeden önce yaptığınız değişiklikleri doğrulamak için özel yapı ("arkadaş yapı" olarak da bilinir) kullanabilirsiniz.Özel bir yapıyı sıraya aldığınızda, Reason öğesi ValidateShelveset olarak ayarlanır.Özel bir yapıyı sıraya alma hakkında daha fazla bilgi için bkz. Yapıyı sıraya koyma.

Tamamlanmış bir Yapı Oluşturmak için Özel Kod Kullanma

Microsoft.TeamFoundation.Build ad alanındaki sınıfları kullanarak tamamlanmış yapı oluşturan özel kod geliştirebilirsiniz.Bir yapı bu şekilde sıraya alınırsa, Reason öğesi UserCreated olarak ayarlanır.Daha fazla bilgi için bkz. Team Foundation'ı Genişletme: Yapı

Yapı Tetikleyicileri ve Nedenlerle Çalışma

Yapı işleminizdeki tetikleyiciler ve nedenleri aşağıdaki şekillerde kullanabilirsiniz:

  • Yapı işleminiz için tetikleyiciyi ayarlama: Yapı tanımızda, Tetikleyici sekmesine tıklayın ve takımınızın gereksinimlerini en iyi şekilde karşılayan tetikleyiciyi seçin.Bir yapı tanımı oluşturma hakkında daha fazla bilgi için bkz. Yapı tanımı oluşturma veya düzenleme.

  • Hangi yapı nedeninin özel yapı işlemi tarafından kabul edildiğini tanımlama: Yalnızca belirli bir neden için çalıştırılmış yapılarda çalıştırmak istediğiniz yapı işleminizin parçasını çevrelemek için InvokeForReason etkinliğini kullanabilirsiniz.Daha fazla bilgi için bkz. Team Foundation Yapısı Etkinlikleri: InvokeForReason.