Sürekli entegrasyon (iOS ve Android projeleri ile) [kapalı]


10

Şirketimde bazı olumlu değişiklikler yapmaya çalışıyorum ve değişikliklerden biri sürekli entegrasyon uygulamak. Mobil geliştirme (iOS / Android) yapıyoruz, bu nedenle her iki projeyi de destekleyen bir CI'ye ihtiyacım var. Anlayacağınız gibi CI hakkında çok şey bilmiyorum ama biraz googledim ve bence Jenkins ve Hudson en popüler ikisi.

İki bölümlü bir sorum var.

  1. Jenkins hakkındaki düşünceniz?
  2. CI için projenin
    kodlama standartlarına uygun olup olmadığını kontrol etmesinin bir yolu var mı (gevşek bağlantı vb.)?

3
"Jenkins ve Hudson ikisi" ... hmm Jenkins'in Hudson için yeni isim olduğunu biliyor musun ?
gnat

1
Bunu gerçekten bilmiyordum! Dediğim gibi CI için gerçekten yeniyim ve 0 deneyimim var. Soooo .. J & H aynı şey .. Tahmin et seçeneklerimi daraltır :)
paxx

Ayrıca Team City, Cruise Control ve diğerleri de var.
Kyle Hodgson

@gnat: Bence jenkins Hudson'ın bir çatalı. Bence Hudson hala dışarıda: Oracle tarafından yönetilen hudson-ci.org . Jenkins, çoğu insanın göç ettiği çok iyi bir çatal. Yanılıyorsam özür dilerim ...
dbalakirev

Yanıtlar:


9

İlk olarak sunucunuz için başka bir seçenek olarak TeamCity'ye bakmak isteyebilirsiniz .

Benim görüşüme göre (Jenkins ile TeamCity'den biraz daha az deneyimim olsa da) her ikisi de mükemmel ve çok yetenekli araçlardır - her ikisini de kullanan bir ortamda mutlu olurum.

Tamam, sorunun etine ulaşmak için yani

CI için projenin kodlama standartlarına uygun olup olmadığını kontrol etmesinin bir yolu var mı (gevşek bağlantı vb.)?

En temel düzeyde, bir CI sunucusunun yaptığı tek şey bir komut dosyası çalıştırmak ve daha sonra bu komut dosyasını çalıştırmanın sonuçlarını yorumlamak ve sunmaktır - böylece komut dosyası yazabiliyorsanız, CI sunucunuz muhtemelen çalıştırabilir ve çıktıyı uygun şekilde biçimlendirebilirseniz CI sunucusu muhtemelen sonucu yorumlayabilir ve raporlayabilir.

Tabii ki önemli yapı sunucuları zaten konuşurken / popüler birçok araç ile entegre yeteneğine sahiptir - yani gerçekten soru size kodlama standartlarını kontrol etmek kullanarak ne takım haline gelir ve yapar o CI sunucusunun seçtiğiniz entegre olur.

Evet, CI sunucusu oyuna otomasyon açısından akılsızca bir senaryo çalıştırmaktan çok daha fazlasını getiriyor - ancak günün sonunda bunu yapıyor.


Sadece açık olmak gerekirse - bir yapı sunucusunun sadece komut dosyaları çalıştırmaktan daha fazlasını yaptığını biliyorum, bu işlemin otomasyonu (ve özellikle değer katan (D) VCS ile entegrasyon) - ancak "ne için ihtiyacım var? bir yapı sunucusu "sorusunun cevabı" sunucu ve script "dir.


TeamCity'yi iOS için CI sunucum olarak oldukça başarılı bir şekilde kullandım. Android için kullanmak bir
beyinsiz

5

TeamCity tavsiyesini ikinci olarak aldım - harika bir ürün. Orada hiçbir koltuk zamanım var gibi android için konuşamam, ama başarıyla iki makale CI çalışan iOS projeleri var ( 1 2 ).

En zor kısımlar, macun otomatikleştirilmiş yapıyı uygun anahtarlıkla çalıştırmasını sağlamakla gerçekten ilgiliydi ve böylece sadece emülatör seçeneği yerine iDevice'e dağıtabileceğiniz imzalı bir uygulama oluşturabilirsiniz.


TeamCity'yi linux sunucusuna kurmak ve daha sonra iOS projelerini işlemek mümkün müdür?
paxx

1
TeamCity önemli değil, yapım aracısı. Ve iOS için bir mac'e dağıtmanız gerekecek. Sadece araç zinciri var. Muhtemelen GNUStep kullanarak bazı şeyler yapabilirsiniz, ancak şüphem, önemsiz olmayan bir şeyle oldukça sinir bozucu bir zamanınız olacaktır.
Wyatt Barnett

2

İOS uygulamaları geliştirdiğimiz Jenkins'i kullanmadan önce şirketimizin oluşturma sunucusunu ve komut dosyalarını kurdum. Birçoğunun dediği gibi, CI sunucusu oldukça basit ve Jenkins'i seviyorum / çünkü ücretsiz / açık kaynak ve yayınlama raporları veya github entegrasyonu gibi birçok eklentiye sahip.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.