J'utilise des projets open source depuis un certain temps et je développe sur les applications open source et de temps en temps je rencontre les mots `` Nightly Build '' et j'ai toujours été curieux de savoir ce que cela signifie réellement. Cela signifie-t-il littéralement que les projets sont réalisés uniquement en tant que projets parallèles (généralement la nuit après que tout le monde a terminé son travail de jour) et qu'il n'y a pas de véritable contributeur/équipe de développement dédiée ou est-ce plus complexe que cela?
Non, cela signifie que chaque nuit, tout ce qui a été vérifié dans le contrôle de source est construit. Cette version est une "version nocturne".
En général, cela signifie un build automatisé qui est effectué une fois par jour, généralement après la fin de la journée pour la plupart des développeurs. Pour les projets avec des développeurs dans plusieurs fuseaux horaires, c'est généralement un temps de compromis. L'idée est que tous ceux qui vont archiver le code "aujourd'hui" l'ont fait, et la construction automatisée s'assurera que tout se compile et, espérons-le, exécutera les tests unitaires et tous les autres tests automatisés, etc. qui existent, puis produira un installateur final/exécutable etc.
Cela signifie une construction qui est effectuée à la fin de chaque journée de développement. Si vous utilisez un serveur d'intégration continue, il sera généralement configuré pour générer le code et exécuter les tests unitaires à chaque enregistrement. À la fin de chaque journée, vous souhaiterez peut-être exécuter des tests plus poussés, des tests de régression et des tests d'intégration, par exemple, qui prennent trop de temps à s'exécuter à chaque enregistrement et ceux-ci seraient déclenchés après la construction nocturne. Si vous disposez d'un pipeline complet livraison continue, la version nocturne peut également être utilisée pour déployer le code généré dans des environnements pour les tests utilisateur.
Le terme est fréquemment utilisé pour les grands projets où une reconstruction complète du produit fini à partir de la source prend trop de temps pour que le développeur individuel le fasse dans le cadre de son cycle de développement normal.
Au lieu de cela, une reconstruction complète est effectuée automatiquement pendant la nuit afin que l'ordinateur de génération ait 8-10-12 heures pour faire la génération et la préparer pour les développeurs qui viennent le lendemain matin, afin qu'ils puissent continuer à travailler sur leur petit morceau individuel au-dessus de la nouvelle version.
De nos jours, il est fréquent que le projet comprenne de nombreux tests garantissant le bon fonctionnement du code, ainsi que de générer et publier de la documentation à partir de la source (comme javadoc).
Les builds nocturnes sont une bonne chose, ils fournissent un retour immédiat aux développeurs s'ils cassent la build. Une version nocturne signifie que le logiciel est stable et susceptible de se développer pour les nouveaux utilisateurs. Un logiciel qui n'est pas construit régulièrement est difficile à publier.
Cité de: https://chess.eecs.berkeley.edu/softdevel/nightly.htm