O que significa 'Construções noturnas'?

53

Eu uso projetos de código aberto há algum tempo e desenvolvo aplicativos de código aberto e, de vez em quando, me deparo com as palavras 'Nightly Build' e sempre fiquei curioso sobre o que realmente significa. Isso significa literalmente que os projetos são feitos apenas como projetos paralelos (geralmente à noite, depois que todos terminam seus trabalhos diurnos) e não há uma verdadeira equipe de desenvolvimento / colaborador dedicado ou é mais complexo do que isso?

dbramhall
fonte
10
Google falhou com você? joelonsoftware.com/articles/fog0000000023.html estava bastante alto na lista. Por favor, atualize sua pergunta para identificar coisas específicas em falta a partir deste blog postagem.
31511 S.Lott
2
@ S.Lott o link que você fornece é bastante longo, é bom ter uma versão mais curta ou uma resposta mais direta aqui no estouro de pilha. Para quem quiser saber mais sobre o assunto, acesse o link que você forneceu.
Andrew Lam Yat Weng

Respostas:

68

Não, significa que todas as noites tudo o que foi verificado no controle de origem é construído. Essa compilação é uma "compilação noturna".

CaffGeek
fonte
13
Normalmente, há uma máquina executando um script que extrai automaticamente todas as alterações do sistema de controle de versão, compila (constrói) todo o código e o publica em algum lugar para fazer o download ou (se for um site ou serviço) publicá-lo em um sistema de teste e comece a rodar. Outro nome sob o qual se enquadra é Sistema de Integração Contínua, embora isso possa implicar que uma compilação seja feita no momento em que qualquer confirmação para o VCS é realizada.
CodexArcanum
3
Também deve incrementar a versão e carimbar tudo com o número de versão correto. Nada é mais frustrante do que lidar com compilações aleatórias de programadores criados com código obsoleto e números de versão incorretos. Uma compilação noturna oferece a todos uma compilação e um número de versão em que eles podem confiar.
JQA
36

Geralmente, isso significa uma compilação automatizada que é feita uma vez por dia, geralmente após o final do dia para a maioria dos desenvolvedores. Para projetos com desenvolvedores em vários fusos horários, geralmente é um período de compromisso. A idéia é que todo mundo que fizer o check-in do código "hoje" tenha feito isso, e a compilação automatizada garantirá que tudo seja compilado, e esperamos executar os testes de unidade e quaisquer outros testes automatizados que existam, e então produzir um instalador final / executável etc.


fonte
13

Significa uma compilação que é executada no final de cada dia de desenvolvimento. Se você usar um servidor de integração contínua, ele geralmente será configurado para criar o código e executar os testes de unidade a cada check-in. No final de cada dia, convém executar testes mais extensos, testes de regressão e testes de integração, por exemplo, que demoram muito para serem executados em cada check-in e isso é acionado após a compilação noturna. Se você tiver um pipeline de entrega contínuo completo, a compilação noturna também poderá ser usada para implantar o código criado nos ambientes para teste do usuário.

John Channing
fonte
7

O termo é freqüentemente usado para projetos grandes, nos quais uma reconstrução completa do produto final da fonte leva muito tempo para que o desenvolvedor individual faça isso como parte de seu ciclo de desenvolvimento normal.

Em vez disso, uma reconstrução completa é feita automaticamente durante a noite, para que o computador tenha 8-10-12 horas para fazer a compilação e esteja pronto para os desenvolvedores chegarem na manhã seguinte, para que eles possam continuar trabalhando em seus pequenos detalhes. da nova versão.

Atualmente, é frequente que o projeto inclua muitos testes, garantindo a operação correta do código, além de gerar e publicar documentação da fonte (como javadoc).


fonte
0

Construções noturnas são boas, elas fornecem feedback imediato aos desenvolvedores se eles quebrarem a construção. Ter uma compilação noturna significa que o software é estável e passível de compilar para novos usuários. É difícil lançar um software que não é construído regularmente.

Citado em: https://chess.eecs.berkeley.edu/softdevel/nightly.htm

khaja
fonte
4
este lê mais como um comentário, consulte Como responder
mosquito
me lembra dos meus dias de exame, é assim que costumávamos começar a resposta das perguntas. 😜i
ssi-anik
Isso explica o que é um nightly build é para, mas não explica o que é um nightly build é .
Bryan Oakley