Co oznacza „Nightly Builds”?

53

Od jakiegoś czasu korzystam z projektów open source i rozwijam aplikacje open source i co jakiś czas spotykam słowa „Nightly Build” i zawsze byłem ciekawy, co to właściwie znaczy. Czy to dosłownie oznacza, że ​​projekty są wykonywane wyłącznie jako projekty poboczne (zwykle w nocy po zakończeniu pracy przez wszystkich) i nie ma prawdziwego współpracownika / dedykowanego zespołu programistów, czy jest to bardziej skomplikowane?

dbramhall
źródło
10
Google cię nie zawiodło? joelonsoftware.com/articles/fog0000000023.html był dość wysoko na liście. Proszę zaktualizować swoje pytanie zidentyfikować konkretne rzeczy brakuje w tym blogu delegowania.
S.Lott,
2
@ S.Lott podany przez Ciebie link jest dość długi, dobrze jest mieć krótszą wersję lub prostszą odpowiedź tutaj w przepełnieniu stosu. Ci, którzy chcieli dowiedzieć się więcej na ten temat, mogą przejść do podanego linku.
Andrew Lam Yat Weng,

Odpowiedzi:

68

Nie, oznacza to, że każdej nocy budowane jest wszystko, co zostało sprawdzone pod kontrolą źródła. Ta kompilacja to „kompilacja nocna”.

CaffGeek
źródło
13
Zazwyczaj na komputerze jest uruchomiony skrypt, który automatycznie pobierze wszystkie zmiany z systemu kontroli wersji, skompiluje (skompiluje) cały kod, a następnie opublikuje go w miejscu do pobrania lub (jeśli jest to strona internetowa lub usługa) opublikuje w systemie testowym i zacznij działać. Inną nazwą, pod którą się to obejmuje, jest Continuous Integration System, chociaż może to sugerować, że kompilacja jest wykonywana w momencie wykonania dowolnego zatwierdzenia do VCS.
CodexArcanum
3
Powinien także zwiększać wersję i stemplować wszystko poprawnym numerem wersji. Nie ma nic bardziej frustrującego niż radzenie sobie z przypadkowymi kompilacjami programistów zbudowanymi ze starego kodu i niewłaściwych numerów wersji. Kompilacja nocna daje każdemu kompilację i numer wersji, której mogą zaufać.
jqa
36

Ogólnie dla większości programistów oznacza to automatyczną kompilację, która jest wykonywana raz dziennie, zazwyczaj po zakończeniu dnia. W przypadku projektów z programistami w wielu strefach czasowych jest to na ogół czas kompromisowy. Chodzi o to, że wszyscy, którzy sprawdzą kod „dzisiaj”, zrobili to, a zautomatyzowana kompilacja upewni się, że wszystko się skompiluje, i miejmy nadzieję, że uruchomią testy jednostkowe i inne istniejące testy automatyczne itp., A następnie przygotują ostatecznego instalatora / wykonywalny itp.


źródło
13

Oznacza kompilację wykonywaną na koniec każdego dnia rozwoju. Jeśli korzystasz z serwera ciągłej integracji, zwykle będzie on skonfigurowany do budowania kodu i uruchamiania testów jednostkowych przy każdym zameldowaniu. Na koniec każdego dnia możesz chcieć przeprowadzić bardziej szczegółowe testy, testy regresji i testy integracyjne, na przykład, których uruchomienie przy każdym zameldowaniu trwa zbyt długo, a zostaną one uruchomione po nocnej kompilacji. Jeśli masz pełny ciągły ciąg dostarczania, kompilację nocną można również wykorzystać do wdrożenia wbudowanego kodu w środowiskach w celu przetestowania przez użytkownika.

John Channing
źródło
7

Termin ten jest często używany w przypadku dużych projektów, w których kompletna przebudowa gotowego produktu ze źródła zajmuje zbyt długo poszczególnym programistom wykonanie tego w ramach normalnego cyklu rozwojowego.

Zamiast tego kompletna przebudowa jest wykonywana automatycznie w nocy, więc komputer kompilacji ma 8-10-12 godzin na wykonanie kompilacji i jest gotowy dla programistów przybywających następnego dnia rano, aby mogli kontynuować pracę nad swoim indywidualnym kawałkiem nowej wersji.

Obecnie często zdarza się, że projekt zawiera wiele testów zapewniających poprawne działanie kodu, a także generowanie i publikowanie dokumentacji ze źródła (np. Javadoc).


źródło
0

Nocne kompilacje są dobrą rzeczą, zapewniają natychmiastową informację zwrotną dla programistów, jeśli zepsują kompilację. Nocna kompilacja oznacza, że ​​oprogramowanie jest stabilne i prawdopodobnie stworzy je dla nowych użytkowników. Oprogramowanie, które nie jest regularnie budowane, jest trudne do wydania.

Cytat z: https://chess.eecs.berkeley.edu/softdevel/nightly.htm

Khaja
źródło
4
brzmi to bardziej jak komentarz, patrz Jak odpowiedzieć
gnat
przypomina mi dni moich egzaminów, w ten sposób rozpoczynaliśmy odpowiedź na pytania. 😂😜
ssi-anik
To wyjaśnia, do czego służy kompilacja nocna, ale nie wyjaśnia, co to jest kompilacja nocna .
Bryan Oakley,