Après une brève réflexion, je dirais que cela pourrait même être plus important pour un développeur solo que pour une équipe.
Au niveau le plus élémentaire, un serveur CI démontre que vous pouvez créer votre application à partir de zéro à partir d'une source validée - combiné à un ensemble décent de tests, il devrait démontrer que vous pouvez créer et exécuter à partir de zéro.
Étant donné que l'une des choses que j'essaie de faire est de m'assurer que ma build comprend un package déployable, vous savez également que vous pouvez obtenir quelque chose à déployer (propre et à partir d'un état / d'une version connue).
En fait, maintenant, lorsque vous faites Fichier | Nouveau projet, vous devez probablement inclure la création ou l'ajout à votre référentiel et la configuration de votre script de construction CI et de la configuration du déploiement (même si cela ne fait que compresser une pile de choses pour le déploiement xcopy)
Addendum (2016) - de nos jours, mon système CI fera également partie intégrante de mon processus de déploiement, donc sa valeur a augmenté et je n'exécuterai absolument aucun projet livrable sans lui. Le déploiement automatisé des boutons-poussoirs supprime beaucoup de stress du processus et, d'une certaine manière, la forme ou la forme d'un serveur de build en fait partie intégrante.
Quand je suis le seul à m'engager, je construis et teste juste avant de m'engager. J'utilise généralement une cible de makefile comme:
Cela configure, construit, exécute tous les tests (valgrind au courant), exécute les lints, etc. Comme je sais que je serai le seul à pousser, je n'ai pas vraiment besoin de la puissance de quelque chose comme Hudson.
De plus, dans un environnement où vous avez plusieurs branches alimentant un référentiel principal, si tout le monde suit toujours le pull avant de valider ou de pousser, le serveur CI peut être un peu trop fatigant. Une règle bien écrite selon laquelle l'auteur de tout ce qui a cassé la dernière version achète de la pizza le vendredi permet généralement de bien fonctionner :)
S'il entre dans une situation où un projet est clairement divisé en sous-systèmes qui ont leurs propres dirigeants, vous devez vraiment envisager d'utiliser quelque chose comme Hudson. Quelqu'un pourrait tester localement, perdre une course avec un autre sous-système et finir par pousser quelque chose de toxique.
De plus, si vous maintenez une fourchette d'un projet en évolution rapide (par exemple, votre propre ensemble de correctifs pour le noyau Linux), vous devriez vraiment envisager d'utiliser quelque chose comme Hudson, même si vous êtes `` solo '' sur ce projet. Cela est particulièrement vrai si vous branchez / rebase directement à partir de la ligne principale.
la source
make: don't know how to make sense. Stop
. Argh!Je ne dirais pas que c'est juste un bon bonus, je dirais que c'est vital pour l'ingénierie logicielle de haute qualité pour nous, artistes solo. La plupart d'entre nous laisseront leurs normes de qualité glisser un peu s'ils sont pressés s'ils pensent que c'est assez facile à corriger plus tard. Si vous validez un logiciel dans cet état, vous avez essentiellement une base de code sans valeur stockée dans votre contrôle de code source.
S'il est respecté correctement (c'est-à-dire que vous ne sautez pas les tests et que vous vous assurez qu'il se construit à chaque fois que vous vous engagez), CI vous oblige à adhérer à un standard de qualité plus élevé que si vous le faisiez de toute façon.
la source
C'est important si vous voulez réduire votre temps d'attente pour voir si tout va bien. Bien que vous puissiez demander à votre IDE de compiler des éléments pour vous dès que vous enregistrez, il n'exécute pas automatiquement les tests unitaires, donc mon serveur CI exécute les tests unitaires et les rapports de couverture de cas de test et autres analyses de qualité de mon code dès que Je le pousse.
Le seul déclencheur que je dois faire est de pousser mes modifications actuelles au contrôle de version et je peux revenir au codage. Et pendant que je pense au codage, le système CI est occupé à faire des rapports de qualité à long terme que j'examinerai de temps en temps lorsque mon cerveau s'endormira.
J'ai une machine VMWare distincte sur le même ordinateur portable qui fait les builds pour le code que j'introduis. Pour ce faire, j'obtiens simplement une image VMWare Linux clé en main et installe les jenkins en utilisant apt-get et fais quelques changements de configuration mineurs.
la source