Du test joel :
Pouvez-vous créer un build en une seule étape?
Je dois dire que je ne peux pas. Je travaille actuellement sur une application web qui a une liste de feuille de calcul des éléments qui doivent être effectués pour se déployer. Ma question est donc de savoir comment puis-je automatiser cela ? Doit-elle être étendue à toute l'organisation? Conseils / techniques?
tools
builds
automation
billy.bob
la source
la source
Réponses:
Make peut automatiser le processus de construction en une seule étape. Make peut faire à peu près tout ce que vous voulez. Je ne sais pas pourquoi sapporo pense que Make ne s'applique qu'à C / C ++. Vous pouvez utiliser make pour exécuter n'importe quel type de commande. Il n'est même pas lié à la programmation, mais c'est à cela qu'il sert généralement.
la source
Selon votre environnement, vous voudrez peut-être regarder Make (C / C ++), Ant / Maven (Java), Gradle (Groovy) - ce sont ceux que je connais. Les chances sont élevées, il existe une solution populaire pour votre environnement.
la source
Au travail, nous utilisons FinalBuilder , ce qui facilite la configuration d'un script pour automatiser l'ensemble du processus: extraire le code, tout construire, exécuter des tests, créer un package de déploiement, etc.
C'est un très bon outil, et il a récemment remporté le prix Dr. Dobbs Jolt pour les outils de gestion du changement et de la configuration.
la source
Bien sûr, il existe un moyen d'automatiser cela. Avec des outils comme Chef , la configuration d'un tout nouveau serveur fraîchement installé peut être aussi simple que:
Dans mon cas, certaines étapes exécutées par cette seule commande sont:
Je ne suis pas sûr de la performance de Chef dans votre environnement, car le support de Windows est répertorié comme "préliminaire", mais pour les systèmes basés sur UNIX, ce sont les genoux de l'abeille.
Puppet est un système similaire qui est un peu plus ancien que chef et peut offrir une meilleure prise en charge de Windows.
la source
C'est simple avec Maven dans le monde Java
Dans notre configuration, cela fait toute la construction nécessaire du fichier WAR (en tirant les dépendances JAR au besoin), le déploiement sur le serveur Web de développement et la création de données de test prédéfinies sur la base de données de développement. Une fois que c'est en place, Maven gère les tests fonctionnels complets via SeleniumRC pour vérifier le fonctionnement de l'application.
Cette commande unique permet de déployer complètement l'application sur le cluster de serveurs de développement afin qu'elle soit immédiatement disponible pour que les autres développeurs puissent travailler immédiatement (en supposant qu'elle ait réussi les tests). Il est inhabituel qu'un déploiement dev échoue, car les développeurs ont vérifié qu'il fonctionne localement avec
mvn clean install
.L'artefact d'instantané (WAR) est ensuite copié dans le référentiel Maven pour être partagé avec d'autres développeurs (conformément au
deploy
comportement Maven standard ).OK, mais vous n'avez déployé qu'un instantané pour le développement, qu'en est-il du test et de la production?
La distribution aux serveurs de test et de production (plus tard) est gérée par le processus de publication de Maven que nous aimons gérer manuellement pour garantir que quelqu'un surveille toute sortie suspecte. Les testeurs ne fonctionnent qu'avec les artefacts publiés, pas les instantanés.
Une fois qu'il est sorti, un simple script de construction est utilisé pour SFTP le fichier WAR vers le cluster de serveur de test, encore une fois avec quelqu'un qui regarde le processus pour s'assurer que rien ne va mal.
Enfin, une fois que tous les testeurs sont satisfaits, le fichier WAR inchangé est SFTP jusqu'au cluster de serveurs de production de basculement, avec quelqu'un qui surveille de près et une position de restauration immédiate en place en cas de catastrophe.
la source
Je me suis dit que je pourrais vérifier celui-là lors de notre test Joel alors ...
J'ai fait un serveur de build en python automatisé en utilisant pychron .
Le code a été synchronisé avec VSS à partir de la ligne de commande, construit avec borland make (la plupart des IDE créeront des fichiers make pour vous, qu'ils les appellent ou non. Delphi utilisait des fichiers make et les appelait des fichiers .BPG, maintenant ils ' concernant les fichiers XML MSBuild et vous pouvez utiliser MSBuild) et les erreurs ont été enregistrées dans un fichier XML que je viens d'ajouter.
Alors .. Il suffit d'écrire un fichier batch et de faire ces choses.
la source