PHP CI/CD инструменты для поддержки legacy кода?

Здравствуйте, мне очень хочется внедрить в свой проект CI/CD, но практического опыта никогда не было.
Гора прочтённых по этой теме статей приводит меня к ответу "пиши своё", на что нет никаких ресурсов.
Имеется:
  • Закрытый коммерческий проект
  • Свой сервер на debian с доступом по SSH
  • Проект на phpBB 3.0.12 (никаких composer, тестов и скупая документация в коде)
  • Гора написанного поверх и рядом кода (нефорумная логика, никакой документации, стиля кодирования и тестов)
  • PHP 5.3 (подъем до 5.4 ломает работоспособность, а на адаптирование кода уйдут месяцы)
  • Шаблонизатор HTML пробрасывает PHP переменные в JS через SCRIPT теги
  • В JS чересчур активно используется формирование html конкатенацией строк и дальнейшим вводом в innerHTML
  • Тестовый сабдомен со своей базой и кодом

Рабочий процесс сейчас:
  1. Фича описывается в своей ветке
  2. Создаётся pull-request
  3. Другой разработчик проверяет код, стиль, документацию
  4. После изменений ветка вливается в develop
  5. Руками достаём из ветки develop файлы, используя git diff --name-only
  6. Подключаемся по FTP к тестовому сабдомену, копируем из него файлы которые будем менять в отдельную папку (соблюдая иерархию папок)
  7. Перезаписываем поверх новые файлы из develop
  8. Запросом к SQL меняем версию сайта(она дописывается к статическим файлам для «сброса кеша»)
  9. Тестируем функционал на ограниченном количестве пользователей тестового сабдомена
  10. После всех правок заливаем ветку develop в master и повторяем всё то же с пункта 5 для основного домена

Рабочий процесс в мечтах:
  1. Фича описывается в своей ветке
  2. Создаётся pull-request
  3. Сервер прогоняет Code Coverage, PHPLint, PHPDCD, PHPMD, PHPCS и аналогичные тесты для HTML и JS только по изменённому коду(очевидно, что эти инструменты будут ругать уже имеющийся в изменённых файлах код)
  4. После изменений ветка вливается в develop
  5. Сервер реагирует на вливание в develop и автоматически меняет файлы на тестовом домене, меняет версию сайта в базе
  6. После всех изменений вливаем код в master
  7. После всех правок заливаем ветку develop в master и сервер делает всё то же с пункта 5 для основного домена

Вопросы:
  • На основном домене хотелось бы иметь кнопки "откатить до" с выбором стабильных версий, такое возможно?
  • Какие инструменты могут подойти для изменения рабочего процесса?Как наилучшим способом это организовать?
  • Какие файлы отдавать на проверку автоматическим тестам, если на основном домене файлы должны быть после обработки autoprefixer,mqpacker,csso/uglify/html-minify?

Надеюсь, у Вас тоже навернулись слёзы при чтении описания моего текущего рабочего процесса и состояния кодовой базы.
Я далеко не профессиональный разработчик и молю о помощи специалистов.
Вариант "переписать всё под современные стандарты" неприемлем в силу нехватки ресурсов, однако весь новый код команда разработчиков старается писать в ногу со временем.
Извиняюсь за то, что набросал в один вопрос слишком много информации и побочных вопросов.
Заранее огромное спасибо за советы по существу.
  • Вопрос задан
  • 934 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
подъем до 5.4 ломает работоспособность
Мой вердикт: если проект Вам нужен - думайте: как его переписать (план) НОРМАЛЬНО и на PHP7.
А уже потом - про "выкатку" обновлений начинайте думать.

Как сейчас есть - переходите на PHP7.
Параллельно - установите и настройте систему версионности и пишите к ней систему управления.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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