Integrasi berkelanjutan (dengan proyek iOS dan Android) [ditutup]

10

Saya mencoba membuat beberapa perubahan positif di perusahaan saya dan salah satu perubahannya adalah menerapkan integrasi berkelanjutan. Kami melakukan pengembangan seluler (iOS / Android) jadi saya memerlukan CI yang mendukung kedua jenis proyek. Seperti yang Anda tahu, saya tidak tahu banyak tentang CI tapi saya sudah sedikit googled dan saya pikir Jenkins dan Hudson adalah dua yang paling populer.

Saya punya dua pertanyaan bagian.

  1. Pikiran Anda pada Jenkins?
  2. Apakah ada cara bagi CI untuk memeriksa apakah proyek dikompilasi dengan
    standar pengkodean (seperti kopling longgar dan sebagainya)?
paxx
sumber
3
"Jenkins dan Hudson adalah keduanya" ... hmm apakah kau sadar bahwa Jenkins adalah nama baru untuk Hudson ?
nyamuk
1
Saya benar-benar tidak tahu itu! Seperti yang saya katakan, saya benar-benar baru di CI dan memiliki 0 pengalaman. Soooo .. J & H hal yang sama .. Tebak yang mempersempit pilihan saya :)
paxx
Ada juga Team City, Cruise Control, dan lainnya.
Kyle Hodgson
@gnat: baik saya pikir jenkins adalah garpu dari Hudson. Saya pikir hudson masih di luar sana: hudson-ci.org dikelola oleh Oracle. Jenkins adalah garpu yang sangat baik untuk sebagian besar orang yang bermigrasi. Maaf jika saya salah ...
dbalakirev

Jawaban:

9

Pertama, Anda mungkin ingin melihat TeamCity sebagai opsi lain untuk server Anda.

Dalam pandangan saya (meskipun saya agak kurang pengalaman dengan Jenkins dibandingkan dengan TeamCity) keduanya adalah alat yang sangat baik dan sangat mampu - saya akan senang di lingkungan menggunakan keduanya.

Ok, untuk sampai ke daging yaitu masalah

Apakah ada cara bagi CI untuk memeriksa apakah proyek dikompilasi dengan standar pengkodean (seperti kopling longgar dan sebagainya)?

Pada tingkat yang paling mendasar semua yang dilakukan oleh server CI adalah menjalankan skrip dan kemudian menafsirkan dan menyajikan hasil menjalankan skrip itu - jadi jika Anda dapat skrip maka server CI Anda mungkin dapat menjalankannya dan jika Anda dapat memformat output dengan tepat maka server CI mungkin dapat menginterpretasikan dan melaporkan hasilnya.

Tentu saja server build utama sudah mampu berbicara dengan / mengintegrasikan dengan banyak alat populer - jadi benar-benar pertanyaan menjadi alat apa yang Anda gunakan untuk memeriksa standar pengkodean Anda dan apakah itu berintegrasi dengan server CI pilihan Anda.

Ya, server CI membawa lebih banyak ke permainan dalam hal otomatisasi daripada hanya menjalankan skrip tanpa berpikir - tetapi pada akhirnya itulah yang dilakukannya.


Untuk lebih jelasnya - saya tahu bahwa server build tidak hanya menjalankan skrip, ini adalah otomatisasi proses (dan khususnya integrasi dengan (D) VCS) yang menambah nilai - tetapi dalam menjawab "apa yang saya butuhkan untuk server build "pertanyaan jawabannya adalah" server dan skrip "semuanya mengalir dari sana.

Murph
sumber
Saya menggunakan TeamCity dengan cukup sukses sebagai server CI saya untuk iOS. Saya membayangkan itu adalah no-brainer untuk menggunakannya untuk Android
sylvanaar
5

Saya mendukung rekomendasi TeamCity - ini adalah produk hebat. Saya tidak dapat berbicara dengan Android karena saya tidak punya waktu duduk di sana, tetapi saya telah berhasil menjalankan proyek iOS dalam CI berkat dua artikel ( 1 2 ).

Bagian-bagian paling sulit benar-benar ada hubungannya dengan mendapatkan mac untuk menjalankan build otomatis dengan gantungan kunci yang tepat dan semacamnya sehingga Anda dapat membuat aplikasi yang ditandatangani yang dapat Anda gunakan ke iDevice daripada opsi emulator-only.

Wyatt Barnett
sumber
Apakah mungkin untuk menginstal TeamCity ke server linux dan kemudian membuatnya menangani proyek iOS?
paxx
1
TeamCity tidak masalah, itu adalah agen pembangun. Dan untuk iOS Anda harus menggunakan Mac. Hanya itu yang memiliki toolchain. Anda mungkin dapat melakukan beberapa hal menggunakan GNUStep tetapi kecurigaan saya adalah Anda akan memiliki waktu yang cukup membuat frustrasi dengan hal-hal yang tidak sepele.
Wyatt Barnett
2

Saya telah menyiapkan server build dan skrip perusahaan kami sebelum menggunakan Jenkins tempat kami mengembangkan aplikasi iOS. Seperti banyak yang mengatakan, server CI sangat sederhana dan saya suka Jenkins karena ini gratis / open source dan memiliki banyak plugin seperti laporan cakupan publising atau integrasi github.

Timothy Chen
sumber