Tenir un journal des déploiements de capistrano
-
22-07-2019 - |
Question
Existe-t-il un moyen de conserver un journal (soit local, soit stocké sur un serveur distant) à chaque fois qu'un déploiement est effectué via capistrano? Il serait très utile de garder une trace de la révision en cours à un moment donné dans le passé.
Je sais que le processus de déploiement laisse les fichiers déployés pour les 10 derniers déploiements dans le répertoire des versions, mais il serait bien de conserver plus d'historique et de le rendre accessible sous la forme d'un fichier à plat.
La solution
capistrano définit quelques variables utiles, dont une latest_revision
, que vous pouvez vider dans un fichier.
task :mark_revision do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
Autres conseils
Il n'y a pas de fonctionnalité intégrée, donc l'autre réponse fonctionnerait parfaitement; Je pourrais dire que vous devriez l’attacher à la chaîne d’exécution par défaut, je recommanderais quelque chose comme
after :deploy, :mark_revision
de mieux encore à mon humble avis serait quelque chose comme:
after :deploy do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
Je l'ai ouvert comme un moyen de discussion sur le gestionnaire de bogues de Capistrano. Peut-être allons-nous implémenter quelque chose dans le noyau pour conserver de meilleurs journaux; c'est certainement une excellente question que nous avons durement négligée!
Webistrano "de Peritor Labs fait quelque chose de similaire, en maintenant un front-web basé sur une base de données, cela vous permet de consigner ce que vous voulez et de déplacer la dépendance pour le déploiement des ordinateurs des développeurs vers un endroit plus central; les gens utilisent souvent Webistrano sur leur serveur CI ou sur un hôte de référentiel s’ils s’auto-hébergent. Plus d'informations sur leur Trac: http://labs.peritor.com/webistrano
Le bogue réside ici: https: // capistrano. lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments