Saya telah mencari-cari solusi Integrasi Berkelanjutan untuk Ruby on Rails, tetapi belum terlalu senang dengan hasilnya. Saya berasal dari toko .NET yang menggunakan CruiseControl.NET dan benar-benar dimanjakan dengan kemudahan penggunaan dan status / pelaporan yang kaya.
Idealnya saya mencari:
Git / SVN dan Test :: Integrasi unit yang jelas
Integrasi dengan Rake dan / atau Capistrano
Antarmuka web yang menunjukkan status pembuatan
Email notifikasi bangunan gagal.
Notifikasi desktop (berpotensi melalui Growl)
REST API untuk membangun status
Kerangka kerja plugin untuk menjalankan alat analisis kode lainnya dan hasil pelaporan di UI
ruby-on-rails
ruby
continuous-integration
Jim Fiorato
sumber
sumber
Jawaban:
Saya baru saja melalui opsi di sini dan berpikir saya akan menggulungnya pada akhir 2011.
Integritas
Setelah pengalaman hampir mati yang meninggalkan situs web yang masih terhubung dengan informasi yang ketinggalan jaman dan menjatuhkan situs demo, proyek ini memiliki percikan kehidupan lagi. Tetapi dokumentasi belum bergerak, dan banyak dan banyak langkah dalam tutorialnya benar-benar rusak ; Saya harus mengubah referensi permata, membuat beberapa hal dari band, dan kemudian saya masih tidak bisa membuatnya bekerja .
Cruise Control.rb
Sangat sederhana : Anda hanya mengunduhnya, menjalankan baris perintah untuk menambahkan proyek Anda (tidak ada UI untuk melakukannya), dan jalankan aplikasi Rails. Tapi juga tidak ada UI untuk mengedit proyek Anda, dan tidak ada integrasi nyata dengan membangun artefak selain menampilkan tautan ke sana: Anda tidak mendapatkan grafik uji coba, tidak ada garis tren, dll. Saya juga harus menyesuaikan
routes.rb
file untuk mendapatkan penautan kode berfungsi (resources :projects
garis harus bergerak di bawah semua rute non-default lainnya).TeamCity
Ini terlihat luar biasa , tetapi skala bayarannya kelihatan rusak. 3 agen gratis dan kemudian ketika Anda tergantung Anda perlu membagikan ratusan dolar. Build Pribadi terlihat bagus, tetapi tidak memiliki anggaran .
Jenkins (née Hudson )
Ini adalah pendukung Java dan dimuat dengan seribu opsi , sehingga UI membingungkan dan merupakan tugas untuk mengatur proyek Anda . Tetapi begitu Anda mengaturnya, Anda mendapatkan banyak sekali plugin yang dapat ditarik dari mana saja, menjalankan hampir semua hal, dan melaporkan sebagian besar segalanya. Penginstal OS X mengarahkan Jenkins
/Users/Shared/Jenkins/Home
tetapi gagal membuat direktori atau direktorichown
tersebutdaemon
(yang digunakan secara default, dan Anda harus berubah menjadijenkins
pengguna baru sehingga Anda dapat mengatur integrasi GitHub).Lainnya
Saya tidak benar-benar mencoba ini, tetapi berpikir saya akan menyebutkan alasannya:
Pilihan
Kami pergi dengan Jenkins , tetapi saya benar-benar berharap salah satu solusi yang lebih ringan berhasil.
sumber
Bagaimana dengan CruiseControl.rb ?
Kerumunan yang sama yang melakukan
CruiseControl
(pemikiran) dan ditulisRuby
. Sangat mudah digunakanRake
untuk mengintegrasikan alat Anda yang lain, dan dapat menggunakan permata ruby-growl untuk notifikasi Anda.sumber
Anda mungkin juga ingin mempertimbangkan Hudson . Ini dirancang untuk digunakan dengan proyek-proyek Java walaupun ada banyak pilihan plug-in yang tersedia termasuk dukungan untuk Ruby dan Rake. Ini memiliki antarmuka web yang sangat berguna dan mendukung pemberitahuan email serta banyak lainnya (seperti twitter, atau lampu beruang raksasa).
Komunitas ini juga sangat aktif dan ada beberapa artikel tentang mengaitkan Hudson dengan Selenium yang Anda mungkin bisa membantu untuk menguji aplikasi Rails di sisi browser.
Pandangan lain adalah Team City yang gratis untuk proyek dan tim kecil (termasuk komersial). Saya sangat menyukai Team City dan telah menggunakannya sebelumnya untuk proyek lain, tetapi saat ini kami menggunakan Mercurial untuk kontrol sumber dan dukungan Team City agak terlalu beta ketika kami mempertimbangkannya.
Saya beralih dari CruiseControl.net ke Team City dan benar-benar terkejut dengan peningkatannya. Saya sebagian ke Hudson meskipun karena set fitur yang sama dan komunitas yang sangat aktif.
sumber
Circle adalah layanan CI canggih untuk Rails (dan aplikasi web lainnya). Dari daftar Anda, ini mendukung yang berikut:
Joel dan saya menghabiskan waktu sambil mengobrol tentang hal ini di Internet podcast Stackoverflow - lihat saja !
(sunting) Penafian: Paul Biggar mendirikan Circle saat ia menyatakan di profil Stackoverflow-nya
sumber
Semaphore adalah aplikasi CI baru yang di-host untuk aplikasi Ruby dan Rails. Terintegrasi dengan GitHub, tidak memerlukan pengaturan dan memiliki UI sederhana.
sumber
Diperbarui Februari-2015
Codeship
Ada kekurangan pengembangan pada Drone.io jadi saya beralih ke Codeship dan saya benar-benar menikmatinya. Ini secara aktif dikembangkan dan ditingkatkan, memiliki desain yang hebat dan sangat cepat. Plus, untuk tingkat bawah sebenarnya gratis (hingga 100 build per bulan) sehingga akhirnya menjadi lebih murah daripada Drone.io.
Jawaban Asli
Drone.io
Saya baru saja mengatur aplikasi Ruby on Rails utama kami dengan http://drone.io/ . Sepotong kue dan punya antarmuka yang bagus. Saya akan mengatakan pantas untuk dicoba jika Anda mencari solusi sederhana yang di-host .
sumber
Lihat Tddium . Tddium mendukung integrasi berkelanjutan, penyebaran, dan pengujian interaktif aplikasi Ruby. Ini memberikan lingkungan yang dikelola dengan dukungan untuk Selenium, Headless Webkit, dan Solr. Itu host langsung contoh Postgres, MySQL, Mongo, dan Redis. Dan secara otomatis memparalelkan suite tes besar.
sumber
Travis CI telah menjadi populer di dunia ruby: http://travis-ci.org/
sumber
cruisecontrol.rb akan menjadi pasangan yang cocok.
http://cruisecontrolrb.thoughtworks.com/
sumber
Seperti sejumlah orang, saya adalah penggemar berat cruisecontrol.rb, tetapi baru-baru ini mengalihkan proyek saya ke Integrity .
Ringan dan mudah diatur (mirip cc.rb), tetapi dengan antarmuka yang lebih bagus.
sumber
BigTuna - ditulis dalam Ruby, menggunakan Rails dan menggunakan dirinya sebagai CI-nya.
sumber
Anda dapat memberikan Codeship putaran dan melihat apakah itu berfungsi untuk Anda (saya adalah salah satu pendiri)
Integrasi dan Penerapan Berkelanjutan berbasis cloud (dengan dukungan Heroku khusus)
Empat item pertama Anda sudah diterapkan dan berfungsi dengan baik untuk sejumlah perusahaan
Kami sedang mengerjakan fitur-fitur itu juga:
sumber
Tidak ada seorang pun di sini yang menyebut Bambu Atlassian. Ada artikel mirip tutorial yang bagus tentang Ruby on Rails CI menggunakan Bamboo:
http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html
sumber
Integritas tampaknya menjadi solusi hebat. Menyebarkan ke heroku sangat mudah: http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity http://integrityapp.com
sumber
Lakukan sendiri. Tulis skrip bash untuk menjalankan tes dan kemudian jalankan prosedur penyebaran jika tes lulus. Perlu pemberitahuan? Tembak sendiri email plaintext untuk keberhasilan / kegagalan Perlu penjadwal? Cronjob. Ini adalah $ 0 / bln., Dan Anda akan memiliki petunjuk tentang apa yang Anda lakukan. Saya tidak melihat bagaimana membayar seseorang $ 40 / bln akan membantu saya melakukan hal ini dengan cara yang lebih efisien.
Pertimbangkan misalnya: penyebaran saya gagal karena pipa aset yang dikonfigurasi dengan tidak benar (aset gagal dikompilasi). Ini tidak akan ditangkap dengan unit, fungsional, integrasi, regresi, atau tes lainnya. Kesalahan ini tidak akan ditangkap oleh CI. Jumlah waktu yang saya habiskan untuk menulis skrip bash cenderung kurang dari jumlah waktu yang saya habiskan untuk menyiapkan lingkungan CI, dan saya akan menghemat $ 40 / bln.
Juuuuuust melemparkan dua penny ke dalam diskusi; )
sumber
Jalankan Kode Jalankan mungkin yang Anda butuhkan.
Sunting: tautan dihapus karena tidak lagi merujuk ke situs Run Code Run sebelumnya.
sumber
Dan kemudian, ada CI Joe :
Kami menggunakannya setiap hari.
sumber
Saya hanya suka CI joe, saya punya masalah dengan yang lainnya, CI Joe adalah minimum absolut untuk menyelesaikan pekerjaan, super Agile dan dapat diandalkan. Sumber hudson mengerikan, dan UI tidak menarik bagi saya.
sumber
Saya baru saja menerbitkan Aplikasi Integrasi Berkelanjutan yang sangat sederhana untuk RubyOnRails + SVN / GIT. Mungkin Anda harus mencobanya:
http://github.com/felipegiotto/Inotegration/tree/master
Saya mengambil beberapa ide alat pengukuran dan pengujian dan, setelah mencoba beberapa alat CI dan tidak menyukai siapa pun di antaranya, saya memutuskan untuk membuat sendiri, tanpa perlu membuat file XML besar atau konfigurasi lainnya. Persis seperti Rails dibuat.
Jika Anda suka, kirimkan saya umpan balik ..
Salam Hormat,
Felipe Giotto.
sumber
Menjalankan CI setelah setiap komit tampaknya agak mahal jika Anda berlangganan filosofi "komit sering". Bagaimana menjalankan cronjob sederhana setiap beberapa jam dan mengirimkan hasilnya ke milis dev?
sumber
Saya baru saja mengkonfigurasi Hudson / Jenkins untuk itu. Permata ci_reporter dapat membantu memformat output JUnit, apa yang diharapkan oleh Hudson, dan Hudson memiliki plugin Rails, jadi saya dapat melihat cakupan rcov, laporan pengujian, statistik rails dan bahkan lebih banyak lagi.
sumber
Anda harus mempertimbangkan untuk melihat CloudMunch juga. Ini menyediakan platform polyglot untuk memungkinkan Anda memiliki bahasa yang berbeda sebagai bagian dari basis kode Anda, dengan serangkaian metadata build yang kaya.
sumber