Настройка непрерывной интеграции с помощью GitHub Actions

:mag: Обзор

Для создания надежного расширения для Discourse целесообразно внедрить непрерывную интеграцию (CI) в ваш плагин или компонент темы. Это поможет своевременно выявлять ошибки и снизить вероятность появления багов в вашем коде.

Настройка рабочего процесса непрерывной интеграции с использованием GitHub Actions для автоматизации сборок и тестирования — это подход, который команда Discourse применяет ко всем нашим компонентам, и мы рекомендуем вам поступить так же.

:gear: Настройка

Чтобы добавить автоматизированные рабочие процессы для GitHub Actions, необходимо создать папку .github/workflows в корневом каталоге вашего репозитория.

Внутри папки workflows вы можете определить набор автоматизаций, которые должны выполнять GitHub Actions. Например, это могут быть файлы .yml для линтинга и тестирования.

Мы создали шаблоны рабочих процессов как для плагинов, так и для компонентов тем, которые вы можете использовать. Они подключаются к нашим определениям «повторно используемых рабочих процессов» здесь.

В шаблонном репозитории на GitHub вы можете нажать кнопку Использовать этот шаблон, чтобы создать репозиторий плагина или компонента темы на основе шаблона.

Или, если у вас уже есть проект, к которому вы хотите добавить рабочие процессы, просто скопируйте соответствующий рабочий процесс в папку .github/workflows/ вашего репозитория:

:electric_plug: Плагины: discourse-plugin.yml

:jigsaw: Темы и компоненты тем: discourse-theme.yml

:point_up: Эти шаблоны привязаны к определенной основной версии наших повторно используемых рабочих процессов. Небольшие улучшения, которые мы вносим в рабочие процессы, автоматически применятся к вашей теме/плагину. При критических изменениях (например, внедрении нового линтера) мы увеличим номер основной версии повторно используемых рабочих процессов, и вам потребуется обновить свой рабочий процесс, указав новую версию.

:tada: Готово! Всё настроено! Просто сделайте коммит или создайте PR в ваш репозиторий, и GitHub Actions автоматически обнаружит рабочие процессы и начнет выполнение задач.

GitHub Actions покажет детализацию каждого теста и после его завершения укажет либо :white_check_mark:, либо :x: в зависимости от того, прошел тест или нет.

Если тест не прошел, нажатие на «Подробнее» предоставит вам некоторую информацию о том, что именно не сработало, что может подсказать, в чем проблема с вашим кодом и что нужно исправить.

Посмотреть пример

:white_check_mark: Добавьте свои тесты

Для эффективной работы тестов плагинов и компонентов важно, чтобы вы писали тесты для своего плагина или компонента темы.

Подробности о том, как писать фронтенд-тесты с использованием EmberJS, см. по ссылкам:

Подробнее о написании тестов RSpec с использованием Rails см. по ссылкам:

:bulb: Примеры

Для вашего удобства мы подобрали несколько примеров плагинов и компонентов тем, в которые интегрировано надежное тестирование:


Этот документ находится под контролем версий — предлагайте изменения на GitHub.

15 лайков