У меня возникли проблемы с предварительной компиляцией ресурсов во время разворачивания, поэтому я решил перейти на локальную предварительную компиляцию и проверить в результирующих файлах исходное дерево. У меня нет никаких проблем с этим подходом, кроме, что иногда я забываю запустить задачу прекомпиляции и выпускать без предварительной компиляции активов!: (
Мне интересно, если кто-нибудь встретил какой-то способ проверить, произошли ли какие-либо изменения в активах? В идеале я бы хотел выполнить какую-то проверку на моем CI-сервере и не выполнить сборку, если изменения активов не были выполнены.
У меня было несколько мыслей:
-
Запустите
RAILS_ENV=production bundle exec rake assets:precompile
на сервере CI и посмотрите, есть ли какой-либо вывод. (Кажется, что команда ничего не выводит, если активы обновлены.) Однако кажется, что вывод команды каким-то образом связан с средой, в которой он запущен, потому что после запуска команды локально, фиксации результатов, а затем запуск команды на сервере CI, по-прежнему есть выход из этой команды! Я хотел бы знать, почему это связано с окружающей средой, но я даже не могу найти источник дляrake assets:precompile
в рельсах rails github. Кто-нибудь знает, где источник для этого? -
Как-нибудь напишите команду, которая может просматривать историю git и определить, изменились ли какие-либо активы в моей папке
assets/
с момента последней предварительной компиляции. Не совсем уверен, как это сработает...
Это немного меня больше, чем пару раз, и иногда я не поймаю его, когда коллеги совершают изменения в активах - плюс действительно кажется, что это то, что компьютер должен уловить для человека. Я предполагаю, что несколько разумной третьей альтернативой было бы, чтобы сервер CI просто запустил эту команду и автоматически передал сгенерированные файлы в исходное дерево, но мне не нравится идея совершения моего CI-сервера.
Любые мысли? Спасибо.