Di mana dan Bagaimana Hudson / Jenkins menyimpan data?

18

Saya menginstal Jenkins di Ubuntu 10.10 dan saya tidak dapat menemukan penyebutan basis data untuk persistensi data.

Jadi pertanyaan pertama adalah di mana data disimpan, dan kedua, dapatkah kita mengatur Hudson / Jenkins dengan mySQL? atau database serupa?

kamal
sumber
Dalam sistem file, biasanya, sesuatu seperti /var/lib/jenkins/, /var/jenkins_home/atau /home/jenkins/.
Ondra Žižka

Jawaban:

11

Hudson / Jenkins tidak bekerja seperti itu. Ini menyimpan konfigurasi dan informasi pekerjaan /var/lib/jenkinssecara default (jika Anda menggunakan paket deb.). Jika Anda ingin mengatur kegigihan untuk aplikasi tertentu, itu adalah sesuatu yang Anda ingin tangani sendiri - Hudson adalah server integrasi berkelanjutan, bukan kerangka uji.

Lihat artikel Wiki tentang Integrasi Berkelanjutan untuk tinjauan umum tentang apa yang diharapkan.

Andrew M.
sumber
2
@Redmumba saya mengerti ini adalah CI Server, tetapi saya hanya melihat kemungkinan itu digunakan untuk mendorong unit test dan mempertahankan hasil dalam database bukannya file flar. Seperti Jenkins BISA digunakan untuk mengarahkan dan menampilkan tes. Adakah pikiran?
kamal
Build jauh lebih dari sekadar kompilasi (atau variasi bahasanya yang dinamis). Bangunan mungkin terdiri dari kompilasi, pengujian, inspeksi, dan penyebaran — di antara hal-hal lain. Build berfungsi sebagai proses untuk menyatukan kode sumber dan memverifikasi bahwa perangkat lunak berfungsi sebagai unit yang kohesif.
kamal
1
Seperti yang saya katakan, Jenkins hanyalah server CI - ini bukan kerangka kerja. Untuk semua kepentingan dan tujuan, Jenkins hanya menjalankan skrip yang Anda tentukan - tidak peduli tentang penyimpanan persisten, bahasa yang Anda gunakan, atau bahkan apa yang Anda lakukan. Di situlah saya pikir putuskan - Jenkins tidak menyediakan penyimpanan persisten untuk aplikasi Anda, dll.
Andrew M.
1
ref: dari buku "Integrasi Berkelanjutan: Banyak yang menganggap CI tanpa pengujian otomatis dan berkelanjutan tidak menjadi CI. Kami tidak bisa setuju lebih. Tanpa pengujian otomatis, sulit bagi pengembang atau pemangku kepentingan proyek lainnya untuk memiliki kepercayaan dalam perubahan perangkat lunak. Sebagian besar pengembang pada proyek yang menggunakan sistem CI menggunakan alat pengujian unit seperti JUnit, NUnit, atau kerangka kerja xUnit lainnya untuk menjalankan tes. Selanjutnya, Anda dapat menjalankan berbagai kategori tes dari sistem CI untuk mempercepat pembangunan Anda. Kategori ini mungkin termasuk unit, komponen, sistem, beban / kinerja, keamanan, dan lainnya
kamal
1
Baik; jadi kita berada di halaman yang sama. Jenkins menjalankan hal-hal ini - ia tidak mengelola lapisan kegigihan, kerangka uji, alat bangun (kecuali untuk semut), dll. Anda harus membuat lapisan kegigihan dan menguji secara terpisah. Jenkins dapat membuat grafik unittests jika mereka dikeluarkan dalam format xunit, yang merupakan sesuatu yang disediakan oleh kerangka pengujian Java; banyak bahasa lain (seperti hidung Python) akan menampilkan dalam format itu juga.
Andrew M.
6

Jenkins sepertinya menyimpan data, berdasarkan apa yang dilakukan skrip Anda dan bagaimana caranya.

Sebagai contoh; skrip yang menjalankan build komit harian Anda dapat diseting untuk menyerahkan hasil "lulus / gagal" ke Jenkins untuk disimpan dalam file XML. Kemudian, jika Anda tertarik untuk menarik hasil historis "lulus / gagal" dan menggunakannya di tempat lain selain di GUI Jenkins, Anda dapat membuat panggilan ke API Jenkins dan mendapatkan pengembalian XML itu. Parsing dan Anda sudah mendapatkan data yang Anda butuhkan.

Tapi - Selain melakukan ini, Jenkins tidak memiliki sistem repositori karena kesendiriannya.

Selain itu, berikut ini adalah informasi api jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

Perasaan
sumber
2

Jawabannya adalah bahwa jenkins tidak akan mengatur ini untuk Anda. Anda perlu memberi tahu cara mengatur lingkungan dan cara menjalankan tes itu. Ini biasanya dilakukan di bagian langkah-langkah pembangunan. Jika Anda akan memberikan lebih banyak info tentang platform mana yang Anda gunakan, mungkin kami bisa memberikan jawaban yang lebih konkret. Anda bisa memiliki skrip shell yang akan menginstal aplikasi Anda dan menjalankan tes itu, dan kemudian Anda menyebutnya dari hudson. Membuat data keluaran pelari uji dengan cara yang ramah hudson untuk akhirnya memasukkan hasil tes Anda ke webUI untuk melihatnya.

Jorge Vargas
sumber
2

Ini menyimpan data di direktori home Anda di .jenkinsdirektori. Anda dapat menemukan semua informasi relevan yang terkait dengan bangunan Anda di direktori ini.

Jenkins tidak menyediakan dukungan bawaan untuk menghubungkan ke basis data apa pun.

pengguna257831
sumber