Bir terim olarak sürekli entegrasyon iki farklı fikri ifade eder.
Birincisi bir iş akışıdır: Bir ekipteki herkes kendi branşında çalışan ve yerine birkaç hafta süren programlamanın ardından değişikliklerini ana hatta birleştirmeye çalışır, değişikliklerin (neredeyse) sürekli olarak entegre edilmesini sağlar. Bu sorunların erken yüzeye çıkmasını sağlar ve uyumsuz değişikliklerden kaçınır. Ancak, bir değişimin “işe yarayıp yaramadığını” kolayca kontrol etmemizi gerektirir.
İkinci fikrin geldiği yer burası, çok daha popüler hale geldi. Bir CI sunucusu, değişikliklerin mümkün olduğunca çabuk test edildiği temiz bir ortamdır. Temiz çevre, yapının tekrar üretilebilmesi için gereklidir. Bir kez çalışırsa, daima çalışması gerekir. Bu, “makinemde çalıştı” sorununu önler. Özellikle, yazılımınız farklı sistemlerde veya farklı yapılandırmalarda çalıştığında bir CI sunucusu değerlidir ve her şeyin çalıştığından emin olmanız gerekir.
Bir inşa adımının olmaması alakasızdır. Bununla birlikte, CI yalnızca bir test süitiniz varsa anlamlıdır. Bu test takımı otomatik olmalı ve hiçbir arıza olmamalıdır. Testler başarısız olursa, uygun geliştirici, ortaya koydukları sorunu çözebilecekleri bir bildirim almalıdır (derleme olarak bir derleme olmasa bile "yapıyı kırma").
Böyle bir sunucunun sadece testten daha fazlası için değerli olduğu ortaya çıktı. Aslında, çoğu CI yazılımı çeşitli konfigürasyonlarda testleri çalıştırmakta gerçekten berbattır, ancak her türlü işi yönetmede iyidir. Örneğin, “sürekli” birim testlerine ek olarak, gecelik olarak tam bir test yapılabilir. Yazılım, farklı Python sürümleriyle, farklı kütüphane sürümleriyle test edilebilir. Bir web sitesi ölü linkler için test edilebilir. Statik analiz, stil denetleyicileri, test kapsamı araçları vb. Kod üzerinde çalıştırabiliriz. Belgeler oluşturulabilir. Tüm test paketleri geçtiğinde, yazılımınızı yayınlamaya hazır olmanız için paketleme işlemi başlatılabilir. Bu, her zaman konuşlandırılabilir (ve demonte) bir ürün istediğiniz çevik bir ortamda kullanışlıdır. Web uygulamalarının yükselişiyle birlikte sürekli dağıtım fikri de var: Tüm testler geçerse, değişiklikleri otomatik olarak üretime itebiliriz. Elbette bu, test takımınıza gerçekten güvenmenizi gerektirir (eğer değilse, daha büyük sorunlarınız varsa).