Я пытаюсь понять образ мышления CI и на этих выходных играл с Phing. Все это кажется достаточно простым для использования, и уже есть много примеров.
Однако меня все еще озадачивает, как люди на самом деле его используют. То есть я не ищу, какие тесты вы проводите, а вместо этого ищу предлагаемый рабочий процесс с использованием Phing, на каком этапе вы его активируете, на каком этапе цикла разработки оно выполняется.
Например, у нас есть несколько веб-сайтов, в настоящее время мы редактируем источник локально и при сохранении загрузки на действующий сайт (я знаю, насколько это плохо ...) мы проводим быстрое тестирование и убеждаемся, что код работает так, как планировалось. Если это так, мы берем на себя обязательства по репо и продолжаем. Если нет, мы можем откатиться или отредактировать отмену и повторное сохранение. Хотя сейчас это кажется безумным, простота сработала для нас.
Однако теперь у нас небольшая команда, поэтому я пытаюсь вовлечь Phing в этот процесс, чтобы получить все дополнительные преимущества линтинга / сниффинга / обнаружения беспорядка и т. Д. однако я не могу понять наилучший порядок событий.
Вы бы посоветовали:
- Отредактируйте код локально.
- При сохранении загрузите файл на тестовый сайт.
- Протестируйте сайт на промежуточном сервере.
- Все в порядке, зафиксируйте изменения в репозиториях. Затем запустите пинг.
- Оцените вывод Phing, обновив код по мере необходимости, повторно сохраните, повторно зафиксируйте, повторно запустите phing.
- Предполагая, что Phing проходит, поскольку я запускаю phing на другом сервере, выполните экспорт svn и запустите процесс развертывания.
Вышесказанное мне кажется немного запутанным. Это сбивает меня с толку из-за того, что похоже, что я пытаюсь объединить тестовое развертывание с живым развертыванием?
Также может показаться, что выполнить фиксацию немного назад, затем запустить Phing, затем нужно отредактировать и, возможно, повторно зафиксировать, прежде чем пытаться снова.
Следовательно, было бы разумнее:
- Отредактируйте код локально.
- Сохраните, выполните тестовую сборку развертывания с помощью Phing.
- Убедитесь, что код прошел все проверки кода и т. Д.
- Используя Phing, убедитесь, что код скопирован на промежуточный сервер.
- Протестируйте сайт на промежуточном сервере.
- Все в порядке, зафиксируйте изменения в репозиториях.
- Затем сборка развертывания в реальном времени с помощью Phing.
Проблема в том, что, допустим, я просто хотел исправить написание слова, жестко закодированного на HTML-странице, кажется излишним?
Наконец, как люди настраивают свои серверы, есть ли у вас один сервер для действующего сайта, один для промежуточного и один для размещения Phing (и любого программного обеспечения CI)?