Команда Discourse — как вы так уверены в том, что выпускаете обновления версии каждые несколько минут?

Извините за мета-вопрос о Discourse (игра слов..), но мне обязательно нужно знать: как вам удается с такой уверенностью выпускать десятки обновлений версий каждый день?
Я имею в виду, что код разворачивается в реальном времени в тысячах мест, и риск сломать сайт, на котором может быть несколько сторонних плагинов, тем или компонентов, вполне реален.
У вас, должно быть, невероятный процесс непрерывной интеграции — не могли бы вы поделиться некоторыми советами о том, как вам удается так хорошо тестировать?

7 лайков

Это помогает, что мы сначала разворачиваем все новые изменения в нашем внутреннем сообществе — том, которое мы используем для работы каждый день, а также на meta.discourse.org.

Команда Discourse получает самые новые и блестящие изменения… и баги. Затем вы, ребята с meta, тоже получаете свою долю этого.

Вопреки распространенному мнению, мы не развертываем все изменения постоянно на всех сайтах; мы развертываем сайты на регулярной основе. Вы правы, что поломка сайта — это риск. Нам нужно найти хороший баланс между безопасностью и актуальностью сайтов и тем, чтобы никогда их не обновлять из-за страха поломок.

Что касается тестов, вы можете посмотреть наши репозитории. У нас также есть дополнительные внутренние процессы сборки и тестирования:

  • тесты в ядре запускаются при каждом коммите
  • тесты в поддерживаемом плагине
  • тесты в поддерживаемой теме

Это идеальный сценарий, чтобы сторонний плагин также имел тесты. Также стоит отметить, что мы не поддерживаем их на нашем хостинге из-за невозможности управлять несовместимостью и безопасностью.

17 лайков