Apa yang dimaksud dengan 'Nightly Builds'?

53

Saya telah menggunakan proyek open source untuk sementara waktu dan telah mengembangkan aplikasi open source dan sering kali saya menemukan kata-kata 'Nightly Build' dan saya selalu ingin tahu apa artinya sebenarnya. Apakah ini benar-benar berarti proyek dilakukan murni sebagai proyek sampingan (biasanya pada malam hari setelah semua orang menyelesaikan pekerjaan harian mereka) dan tidak ada kontributor sejati / tim pengembangan khusus atau apakah lebih kompleks dari itu?

dbramhall
sumber
10
Google gagal Anda? joelonsoftware.com/articles/fog0000000023.html cukup tinggi dalam daftar. Harap perbarui pertanyaan Anda untuk mengidentifikasi hal-hal tertentu yang hilang dari posting blog ini.
S.Lott
2
@ S.Lott tautan yang Anda berikan cukup panjang, ada baiknya memiliki versi yang lebih pendek atau jawaban yang lebih langsung di sini di stack-overflow. Bagi yang ingin tahu lebih banyak tentang topik bisa masuk ke tautan yang telah Anda berikan.
Andrew Lam Yat Weng

Jawaban:

68

Tidak, itu berarti bahwa setiap malam, segala sesuatu yang telah diperiksa ke dalam kontrol sumber dibangun. Bangunan itu adalah "bangunan malam".

CaffGeek
sumber
13
Biasanya ada mesin yang menjalankan skrip yang akan secara otomatis menarik semua perubahan dari sistem kontrol versi, mengkompilasi (membangun) semua kode, dan kemudian mempostingnya di suatu tempat untuk diunduh atau (jika situs web atau layanannya) menerbitkannya ke sistem pengujian dan mulai jalankan. Nama lain yang termasuk dalam ini adalah Sistem Integrasi Berkelanjutan, meskipun itu mungkin menyiratkan bahwa build dilakukan saat komitmen apa pun terhadap VCS dilakukan.
CodexArcanum
3
Itu juga harus menambah versi dan mencap semuanya dengan nomor versi yang benar. Tidak ada yang lebih membuat frustrasi daripada berurusan dengan build acak dari programmer yang dibangun dari kode basi dan nomor versi yang salah. Build malam memberikan semua orang build dan nomor versi yang bisa mereka percayai.
jqa
36

Secara umum itu berarti membangun otomatis yang dilakukan sekali sehari, biasanya setelah akhir hari untuk sebagian besar pengembang. Untuk proyek dengan pengembang di beberapa zona waktu, biasanya ini adalah waktu kompromi. Idenya adalah bahwa setiap orang yang akan memeriksa kode "hari ini" telah melakukannya, dan build otomatis akan memastikan bahwa semuanya dikompilasi, dan mudah-mudahan menjalankan tes unit dan semua tes otomatis lainnya dll yang ada, kemudian menghasilkan installer final / dieksekusi dll.


sumber
13

Itu berarti membangun yang dilakukan pada akhir setiap hari pembangunan. Jika Anda menggunakan server integrasi berkelanjutan, umumnya akan dikonfigurasikan untuk membuat kode dan menjalankan tes unit pada setiap check-in. Pada akhir setiap hari Anda mungkin ingin menjalankan tes yang lebih luas, tes regresi dan tes integrasi misalnya, yang membutuhkan waktu terlalu lama untuk dijalankan pada setiap check-in dan ini akan dipicu setelah pembangunan malam. Jika Anda memiliki pipa pengiriman kontinu penuh, bangunan malam juga dapat digunakan untuk menyebarkan kode bawaan ke lingkungan untuk pengujian pengguna.

John Channing
sumber
7

Istilah ini sering digunakan untuk proyek-proyek besar di mana pembangunan kembali lengkap produk jadi dari sumber memakan waktu terlalu lama bagi pengembang individu untuk melakukan ini sebagai bagian dari siklus pengembangan normal mereka.

Alih-alih membangun kembali selesai dilakukan secara otomatis pada malam hari sehingga komputer build memiliki 8-10-12 jam untuk melakukan pembangunan dan menyiapkannya untuk para pengembang yang datang pada pagi berikutnya, sehingga mereka dapat terus bekerja pada masing-masing bit kecil di atas versi baru.

Saat ini, sering kali proyek tersebut menyertakan banyak tes untuk memastikan operasi kode yang benar, serta menghasilkan dan menerbitkan dokumentasi dari sumbernya (seperti javadoc).


sumber
0

Build malam adalah hal yang baik, mereka memberikan umpan balik langsung kepada pengembang jika mereka merusak build. Memiliki bangunan malam berarti bahwa perangkat lunaknya stabil dan cenderung dibangun untuk pengguna baru. Perangkat lunak yang tidak dibangun secara teratur sulit untuk dirilis.

Dikutip dari: https://chess.eecs.berkeley.edu/softdevel/nightly.htm

khaja
sumber
4
ini berbunyi lebih seperti komentar, lihat How to Answer
gnat
mengingatkan saya pada hari-hari ujian saya, itulah cara kami biasa memulai jawaban dari pertanyaan. 😂😜
ssi-anik
Hal ini menjelaskan apa yang membangun setiap malam adalah untuk, tetapi tidak menjelaskan apa membangun setiap malam adalah .
Bryan Oakley