Gitlab CI temelleri

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.

Ayda 2.000 yuan mı harcayacaksınız? Subaru Legacy Araç Bakım Maliyet Analizi!
önceki
Bir röportajda Jack Ma'yı çıkarırdı, şimdi şirketin piyasa değeri 10 milyar ve Alibaba tarafından satın alındı.
Sonraki
Sık sık oluyor! Küçük çocukların beyinlerine 20 cm'lik çubuklar yerleştirilir ve beyinlerine makas yerleştirilir ... Ebeveynler bu iki noktayı hatırlamalıdır
Henüz dönüştürülebilir bir hayali olmayanlar - uygun fiyatlı dönüştürülebilir araçların bir envanteri
2018'de satın almaya en değer orta büyüklükteki yeni enerji aracı ortak girişim! Accord Rui · Hyun sadece bir meze!
Onuncu nesil Civic'iniz değiştirilmedi mi? Bir hiç için satın almak anlamına gelmiyor mu?
İnternet kahvesinin yükselişi ve sık sık yaşanan sermaye krizleriyle, hayatta kalmak için nasıl yanıt vermeliyiz?
Lüks versiyon GAC Mitsubishi Outlander araç satın alma kılavuzunu tavsiye edin
Yeni Ford Bölgesi resmi olarak önümüzdeki yılın başlarında piyasaya sürülecek! Satış öncesi fiyat 12-17 milyon yuan!
Zotye T800'ün listesi ne kadar rekabetçi? Karşılaştırmak isteyebilir
Basit ve kaba! LOL Kurtadam ormancı yeni sürüm için ilk tercih oldu
Köpek maması endüstrisinin "eski vaftiz annesi", boktan kürek subayı nihayet serbest bırakıldı ... Yakışıklı köpek ve kedilere ek olarak, bu evcil hayvan fuarında daha küçük yenilikler var!
Lincoln Continental Special Edition modelleri çıktı! Çift kapılı tasarım lüksle dolu!
100 kilometreden 4,5 saniyeye hızlanan "Çin Ejderhası" - BYD Tang II
To Top