2009-12-22 8 views
3

Je commence à utiliser vlad pour de nouveaux déploiements et je me demande quelle est la meilleure façon de le configurer pour pouvoir utiliser les mêmes tâches pour mes serveurs de développement local et de production à distance? J'ai pensé à tout définir comme des tâches à distance, puis avoir des méthodes dev/prod qui définissent la variable de domaine, alors je peux simplement appeler rake dev/prod vlad:do_something, mais cela ne fait que me tromper.Vlad the Deployer - Modes d'utilisation?

Beaucoup de mes tâches sont utiles pour fonctionner sur mon serveur local et sur mon serveur de production et je veux éviter de me répéter en ayant une 'tâche' pour le local et une 'tâche à distance' pour la télécommande. par exemple. Ai-je oublié quelque chose ou sont-ce vraiment les seules options pour utiliser les mêmes tâches de rake sur les machines locale et distante?

+1

J'aime cette balise :) –

Répondre

5

Que diriez-vous ceci:

[:development, :test, :production].each do |environment| 
    namespace environment do 
    task :do_something do 
     echo "do something on #{environment}" 
    end 
    end 
end 

Cela vous donnera:

  • rake vlad:development:do_something
  • rake vlad:test:do_something
  • rake vlad:production:do_something

Avec un seul meth il est probablement moins verbeux de le faire à votre façon. Mais dès que vous avez deux ou trois méthodes, les frais généraux peuvent être négligés.