Исключая файлы от того, чтобы быть развернутым с Capistrano, в то время как все еще при управлении версиями с Мерзавцем

Я хочу начать тестировать JavaScript в своих приложениях для направляющих с qUnit, и я задаюсь вопросом, как сохранить тест JavaScript и страницей HTML исполнителя тестов при управлении версиями (я использую Мерзавца, конечно), но сохраните их от рабочего сервера, когда я развертываю приложение с Capistrano. Моя первая мысль состоит в том, чтобы позволить Capistrano отправить весь код по как обычный включая тестовые файлы и записать задачу удалить их в конце процесса развертывания. Это походит на вид взлома, все же. Существует ли более чистый способ сказать Capistrano игнорировать определенные части репозитория при развертывании?

9
задан Jimmy Cuadra 1 April 2010 в 05:11
поделиться

2 ответа

Для этого есть много способов. Вы можете сохранить свои тесты в тестовой ветви приложения, как предлагает VonC, но это будет означать, что вы должны сделать все ваши изменения в основной ветке, а затем синхронизируйте ее с тестовой веткой. (Не без достоинств, но иногда и неприятностей)

Вы можете использовать файл .gitignore в своем каталоге.

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

И последнее, но не менее важное: если вам нужны тестовые файлы в вашем основном репозитории для контроля версий, вы можете добавить рецепт в свой файл config / deploy.rb ..что-то вроде:

desc "Remove Test Files"  
    task :remove_test_files , :roles => :web do
      sudo %{rm -f #{current_path}/public/javascripts/testfile.js}
      sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js}
    end

after 'deploy:remove_test_files'

И укажите файлы, которые вы хотите удалить, это удалит все файлы, которые вы хотите удалить при развертывании. :)

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

7
ответ дан 4 December 2019 в 20:22
поделиться

У вас могут быть эти тесты в тестовой ветке (в которой вы объединяете свою основную ветвь перед любым тестом)

Таким образом, когда вы просите Capistrano разверните то, что находится в вашей основной ветке, никакие тесты никогда не включаются.

0
ответ дан 4 December 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: