#ruby #rake
#ruby #rake
Вопрос:
При сборке файлов с rake
помощью, система сборки достаточно умна, чтобы определить, нужно ли ей на самом деле запускать task
, если, например, файл уже существует, а зависимости не являются более свежими.
Есть ли стандартный способ пропустить другие задачи? Я думаю о чем-то, может быть, как
task :containers do
sh "docker-composer up"
end
# the following doesn't exist
task :containers, if: `docker ps | grep mycontainer`.empty?
Ответ №1:
Вы можете использовать next
ключевое слово, чтобы «пропустить» задачу, когда захотите, например
task :containers do
next if `docker ps | grep mycontainer`.empty?
sh "docker-composer up"
end
и это не будет прерывать поток других задач в очереди.
В качестве альтернативы, вы могли бы просто обернуть код своей задачи в if
инструкцию внутри определения задачи и, возможно, распечатать что-то, если условие не выполняется.