Je me suis également posé la question quand j'ai commencé à utiliser Capistrano de plus en plus. Je pense que la plupart d'entre nous conviennent qu'il est logique de suivre configuration d'exécution informations séparément de code fonctionnel droite? Donc, ne devrait pas être la même chose à propos de configuration de déploiement?
Je suppose que vous pourriez faire de votre dossier ./deploy/
un sous-module SCM. Vous pouvez faire une tâche de rake qui génère le fichier Capfile dans votre copie de travail afin que vous puissiez garder les éventuels mots de passe et autres choses à l'extérieur de l'application ... Il pourrait même y avoir une gemme disponible pour cela.
Cependant, j'opté pour une autre approche:
J'ai une dizaine d'applications différentes, dans lesquelles la majorité des variables Capistrano pourrait suivre un motif tel que set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"}
, et de même pour les chemins de référentiel de code source.
J'ai levé tous les connaissances sur le déploiement à partir des applications individuelles et de le placer dans un projet de "déploiement" commun distinct. Maintenant, je peux vérifier ce projet et aller:
cap [some application] [environment] [deploy task]
Je préfère ce modèle/séparation des préoccupations beaucoup plus que de répandre autour Capfiles partout.