Filoda kendi Gitlab örneğimizi oluşturduk ve Gitlab CI'yı yoğun bir şekilde kullandık. Tasarımcılarımız ve test uzmanlarımız da kullanıyor ve kullanmayı seviyor, gelişmiş özellikleri özellikle iyi.
Ancak, yine de bir "boru hattının" ne olduğunu ve bir "ortama" dağıtılan şubeleri nasıl görüntüleyeceğini bilmesi gerekiyor. Bu nedenle, bu yazıda, son kullanıcıların bunları nasıl kullanması gerektiğine odaklanarak mümkün olduğunca çok özelliği ele alacağım; son birkaç ay içinde, geliştiriciler de dahil olmak üzere ekibimizdeki bazı kişilere bunları anlattım. İşlev: Herkes Sürekli Entegrasyonun (CI) ne olduğunu bilmiyor ve herkes Gitlab CI kullanmıyor.
Sürekli entegrasyonun neden bu kadar önemli olduğunu anlamak istiyorsanız, bu makaleyi okumanızı tavsiye ederim.Neden Gitlab CI'yi seçmeniz gerektiğine gelince, Gitlab.com'daki talimatlara gidebilirsiniz.
Giriş
Geliştiricinin değiştirilen kodu kaydetme eylemine kaydetme adı verilir. Ardından, diğer geliştiricilerin kodu gözden geçirebilmesi için bu kaydı Gitlab'a gönderebilir.
Gitlab CI yapılandırıldıktan sonra, Gitlab bu gönderim üzerinde bazı işlemler de yapabilir. Bu işlemin işi bir koşucu tarafından gerçekleştirilir. Sözde koşucu temelde bir sunucudur (PC'niz gibi başka şeyler de olabilir, ancak ona basitçe sunucu diyebiliriz). Bu sunucu .gitlab-ci.yml dosyasındaki talimatları yürütür ve yürütme sonuçlarını Gitlab'ın kendisine döndürür ve ardından bunları Gitlab'ın grafik arabiriminde görüntüler.
Geliştirici yeni bir özelliğin geliştirilmesini tamamladıktan veya bir hatanın onarımını tamamladıktan sonra (bu eylemler genellikle birden fazla gönderimi içerir), bir birleştirme isteği başlatabilir ve diğer ekip üyeleri bu birleştirme isteğine yanıt verebilir. Kod ve uygulaması hakkında yorum yapın.
Daha sonra, Gitlab CI tarafından sağlanan iki ana özellik, çevre ve yapay nesneler nedeniyle, tasarımcılar ve test uzmanlarının bu sürece katılabileceklerini (ve gerçekten buna ihtiyaç duyduklarını), geri bildirimde bulunabileceklerini ve geliştirdiklerini göreceğiz. görüş.
Boru hattı
Gitlab'a gönderilen her kayıt, bu kaydetme ile ilişkili bir ardışık düzen oluşturur. Bir itme birden çok kaydetme içeriyorsa, ardışık düzen son kaydetmeyle ilişkilendirilir. Bir boru hattı, farklı aşamalara bölünmüş bir iş koleksiyonudur.
Aynı aşamadaki tüm işler eşzamanlı olarak yürütülecektir (yeterli sayıda koşucu olması koşuluyla) ve sonraki aşama ancak önceki aşamadaki tüm işler çalışıp başarıya döndükten sonra başlayacaktır.
Bir iş başarısız olduğu sürece, tüm ardışık düzen başarısız olur. Bununla birlikte, daha sonra göreceğimiz gibi, bir istisna vardır: bir iş manuel olarak çalıştırılmak üzere işaretlenmişse, başarısız olsa bile, tüm boru hattı başarısız olmayacaktır.
Aşama, toplu işlerin mantıksal bir bölümüdür.Eğer önceki aşamanın yürütülmesi başarısız olursa, ikincisinin yürütülmesi anlamsızdır. Örneğin, bir derleme aşaması ve bir dağıtım aşaması olabilir .. Oluşturma aşaması sırasında, uygulamayı oluşturmak için kullanılan tüm işler çalıştırılır ve dağıtım aşamasında, yerleşik uygulama dağıtılır. Ve inşa edilemeyen bir şeyi yerleştirmek pek mantıklı değil, değil mi?
Aynı aşamadaki işler arasında hiçbir bağımlılık olamaz, ancak bunlar önceki aşamanın sonuçlarına bağlı olabilir.
Gitlab'ın fazlar ve faz durumu hakkındaki bilgileri nasıl görüntülediğine bir göz atalım.
boru hattına genel bakış
boru hattı durumu
İş
Bir iş, koşucu tarafından uygulanacak bir talimatlar topluluğudur. İşin çıktısını gerçek zamanlı olarak görebilirsiniz, böylece geliştirici işin neden başarısız olduğunu bilebilir.
İş otomatik olarak yürütülebilir, yani push gönderildikten sonra otomatik olarak yürütülecektir veya manuel olarak yürütülebilir. Manuel çalışma, birisi tarafından manuel olarak tetiklenmelidir. Manüel çalışmanın ayrıca, örneğin otomatik dağıtım elde etme gibi kendine özgü bir rolü vardır, ancak yalnızca birisi duruma dağıtımı başlatmak için manuel olarak yetki verdiğinde. Bu, işi kimin yürütebileceğini kısıtlamanın bir yoludur, böylece önceki örneğe devam etmek için yalnızca güvenilir kişiler konuşlanabilir.
Atamalar ayrıca kullanıcıların indirmesi için yapılar oluşturabilir. Örneğin, cihazınızda indirip daha sonra test etmeniz için bir APK oluşturulabilir; bu şekilde hem tasarımcılar hem de test ediciler uygulamaları indirebilir ve Geliştiricilerin yardımı olmadan test edin.
Artefakt oluşturmaya ek olarak, işler bir ortama da dağıtılabilir.Genellikle bu ortama, kullanıcıların ilgili gönderimi test etmesine olanak sağlamak için bir URL aracılığıyla erişilebilir.
İşin durumu, aşamanın durumuyla aynıdır: aslında, aşamanın durumu işten miras alınır.
çalışan iş
Ürünler (Eserler)
Daha önce de belirtildiği gibi işler, kullanıcıların test için indirmeleri için yapılar oluşturabilir. Bu ürün, Windows'taki bir uygulama, bir PC tarafından oluşturulan bir resim ve hatta Android'deki bir APK gibi herhangi bir şey olabilir.
Öyleyse, bir tasarımcı olduğunuzu ve size bir birleştirme isteği atandığını varsayalım: yeni tasarımın uygulanmasını doğrulamanız gerekiyor!
Ne yapmalıyım?
Aşağıdaki şekilde gösterildiği gibi birleştirme talebini açmanız ve ürünü indirmeniz gerekir.
Her bir boru hattı, tüm işlemlerden tüm ürünleri toplar ve tek bir işlemde birden çok ürün olabilir. İndir düğmesini tıkladığınızda, hangi ürünü indireceğinizi seçmeniz için bir açılır kutu görünecektir. Kontrol ettikten sonra, bu birleştirme isteğine yorum yapabilirsiniz.
Ürünleri birleştirme talebi olmadan da boru hattından indirebilirsiniz ;-)
İstekleri birleştirmeye dikkat etmemin nedeni, genellikle testçilerin, tasarımcıların ve ilgili kişilerin işlerine başladığı yer burasıdır.
Ancak bu, birleştirme talebinin ve ardışık düzeninin birbirine bağlı olduğu anlamına gelmez: iyi bir şekilde birleştirilmelerine rağmen, ikisi arasında bir ilişki yoktur.
indirme yapıları
Çevre
Benzer şekilde, iş bir şeyi harici bir sunucuya dağıtabilir, böylece ona birleştirme isteğinin kendisi aracılığıyla erişebilirsiniz.
Gördüğünüz gibi, ortamın (ortam) bir adı ve bir bağlantısı vardır. Bağlantıya tıklamanız yeterlidir ve uygulamanızın konuşlandırılmış sürümüne gidebilirsiniz (şu anda, yapılandırmanın doğru olması koşuluyla).
Gitlab ayrıca, ortamın adına tıklayarak görüntüleyebileceğiniz izleme gibi ortamla ilgili başka harika özelliklere de sahiptir.
çevre
sonuç olarak
Bu, Gitlab CI'daki bazı işlevlere kısa bir giriş niteliğindedir: çok güçlüdür ve doğru kullanılırsa, tüm ekibin aracı planlamadan dağıtıma kadar tamamlamak için tek bir araç kullanmasına izin verir. Her ay birçok yeni özellik sunulduğundan, lütfen Gitlab bloguna bir göz atın.