Влад Деплойер - Шаблоны использования? - PullRequest
3 голосов
/ 22 декабря 2009

Я начинаю использовать vlad для новых развертываний, и мне интересно, как лучше настроить его, чтобы я мог использовать те же задачи для своих локальных серверов разработки и удаленных рабочих серверов?

Я думал о том, чтобы определить все как удаленные задачи, затем иметь методы dev / prod, которые устанавливают переменную домена, тогда я могу просто вызвать rake dev/prod vlad:do_something, но это кажется совершенно неправильным.

Многие из моих задач полезны для запуска на моем локальном сервере и на моем производственном сервере, и я хочу избежать повторения, имея одну «задачу» для локальной и одну «удаленную задачу» для удаленной. например,

def do_something
  run "echo something"
end

task :do_something_dev
  do_something
end

remote_task do_something_prod
  do_something
end

Я что-то упустил или это действительно единственные варианты использования одних и тех же граблей на локальном и удаленном компьютере?

1 Ответ

5 голосов
/ 20 июля 2010

Как насчет этого:

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

Это даст вам:

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

С помощью всего одного метода, вероятно, менее многословно делать это по-своему. Но как только у вас будет 2 или 3 метода, накладными расходами можно пренебречь.

...