2015-09-01 2 views
0

У меня есть задача, которая выполняется при развертывании либо постановки, либо постановки. В идеале я хотел бы передать некоторые аргументы в задачу в зависимости от того, развертываюсь ли я на стадии производства или постановки.получить среду от развертывания шапки развертывания или развертывания крышки

Данные задачи находятся в пределах lib/capistrano/tasks/.

В файле .rake как я могу получить доступ к среде, поэтому я могу определить, что мне нужно установить в качестве флага.

У меня нет проблем с установкой флага, просто не уверен, как я могу получить доступ к среде.

Если кто-то может помочь, он будет очень признателен.

+0

Когда вы говорите «окружающая среда», вы имеете в виду: Capistrano env (dev/stage/prod), среда Rails, переменные окружения, что-то еще? –

+0

Когда я говорю об окружающей среде, я имею в виду, что это либо постановка, либо производство при запуске развертывания кеша, например. В этом случае это будет постановка, но в моем идентификаторе задачи, как получить это. – DMH

+0

Является ли это задачей Капистрано или рейк-задачей Capistrano? –

ответ

1

В зависимости от того, как вы вызываете задачу Rake, вы должны установить переменную среды на основе значения fetch(:stage). Например, что-то вроде:

run "APP_ENV=#{fetch(:stage)} bundle exec rake my:task" 

Вышеупомянутый код не проверен, но должен быть в основном тем, что вы ищете.

+0

К сожалению, не использование Rails и его локального разработчика, что означает, что установка переменной env для каждого из них будет проблематичной и зная, какой из них установлен. – DMH

+0

Что вы подразумеваете под местным разработчиком? –

+0

Простите, что я имею в виду, что каждый раз, когда я хочу, чтобы это было либо производство, либо постановка, мне нужно было бы отредактировать переменную окружения на моей локальной машине, так как там выполняются задачи capistrano. – DMH

Смежные вопросы