- Совместимость с XenForo
- 2.0
- 2.1
Ресурс на рефакторинге. В теле сейчас находится информация по Тревису. Позже она переедет в "Обновления", а в описании будут ссылки на каждый конкретный CI, на котором я пробовал производить настройку.
AHTUNG! Эта статья не актуальна для тех, кто использует GitHub "на полную катушку", и давно знают о CI, и как их настраивать!
Кто занимается разработкой более серьёзно, конечно же, знают о таких вещах, как Continuous Integration (сокращённо CI).
Для разработчиков бесплатных проектов, которые содержат свой код на Гитхабе (и не только), есть варианты бесплатных CI. Для Гитхаба, например, это . Что это такое - я рассказывать не буду. Кому очень интересно, загуглит сам. Если совсем вкратце, то CI упрощают жизнь, позволяя после каждого коммита или создания релиза (тега) выполнить некий набор команд на "пустой" машине (там может быть предустановлен любой интерпретатор, компилятор или СУБД). Например, создали Вы релиз на Гитхабе кнопкой, а где-то в фоне Travis для Вас прогоняет тесты и собирает релиз. Удобно, не правда ли?
Тревисом я пользуюсь около двух лет, запуская в нём сборки своих плагинов для SourceMod. Он очень упрощает жизнь, позволяя не собирать и не публиковать вручную плагины в разделе Releases. Я просто нажимаю кнопку, заполняю поля, и... Всё. Спустя некоторое время после создания релиза, у него появляется архив с всеми файлами.
Собирать можно проекты на любых языках, как и гонять тесты.
Выглядит круто, правда? Давайте собирать релизы для аддонов XF в Тревисе!
К ресурсу я приложил пример конфига для Travis, который позволит чисто собирать релизы с предварительным импортом содержимого папки
Суть Тревиса заключается в том, что Вам предоставляют чистую виртуальную машину, где уже установлены необходимые Вам пакеты, а потом из конфига просто "выполняются команды". Поскольку машина - голая, нам понадобится устанавливать XenForo. Потому необходимо куда-то залить архив. Этот вопрос я оставлю на Вас.
Логинимся на , авторизуемся, даём права. Находим наш репозиторий, переходим в настройки:
Переходим к Environment Variables:
Для моего скрипта, понадобится заполнить три переменных (две из которых необходимо скрывать):
После заполнения всех переменных, получаем такую картину:
Поскольку разрешение на отображение BaseURL и FileName мы не давали, они будут скрыты при сборке, и даже не будут, соответственно, отображаться. А любые попытки вывода - пресекаться (значение будет заменяться на
Заполнили все поля? Отлично!
С некоторых пор, Travis позволяет проверить Ваш конфиг, запустив тестовый билд с тем, что уже лежит в репе. Раньше приходилось постоянно коммитить
Пункт находится там же, где и переход в настройки:
В всплывающем окне выбираем любой бранч, пишем имя коммита (если хотим) и вставляем в поле конфиг:
После придётся подождать.
Travis будет искать свободное место для Вашей пустой виртуальной машины, после запустит и начнёт всё разворачивать:
Весь
По завершению сборки, у репозитория обновится состояние, и Вы сможете узреть, собирается аддон или нет:
В моём случае, аддон даже не устанавливается из-за отсутствия зависимости в виде установленного
Если всё отлично - делаем коммит
Если что-то всё же пошло не так - правим скрипт, пробуем повторно запустить сборку.
Вот так легко и просто можно настроить проверку возможности установить аддон с последующей сборкой. Публикацию релизов на Гитхабе в разделе Releases рассмотрю чуть позже, в отдельном ресурсе. Или можете сами разобраться. Всё очень просто. Официальный гайд (если его можно так назвать) .
Публиковать, кстати, итоговый билд можно куда угодно. Хоть вместо публикации на подготовленные Тревисом варианты - запустить скрипт, который всё сделает. Таким образом можно автоматизировать публикацию релизов у себя на форуме (привет, REST API!).
Пример собирающегося уже в Тревисе аддона (но пока без публикаций релизов; конфиг для Тревиса был составлен ~1.5 часа назад):
P.S.: В данном конфиге предполагается, что все файлы аддона лежат в папке
AHTUNG! Эта статья не актуальна для тех, кто использует GitHub "на полную катушку", и давно знают о CI, и как их настраивать!
Кто занимается разработкой более серьёзно, конечно же, знают о таких вещах, как Continuous Integration (сокращённо CI).
Для разработчиков бесплатных проектов, которые содержат свой код на Гитхабе (и не только), есть варианты бесплатных CI. Для Гитхаба, например, это . Что это такое - я рассказывать не буду. Кому очень интересно, загуглит сам. Если совсем вкратце, то CI упрощают жизнь, позволяя после каждого коммита или создания релиза (тега) выполнить некий набор команд на "пустой" машине (там может быть предустановлен любой интерпретатор, компилятор или СУБД). Например, создали Вы релиз на Гитхабе кнопкой, а где-то в фоне Travis для Вас прогоняет тесты и собирает релиз. Удобно, не правда ли?
Тревисом я пользуюсь около двух лет, запуская в нём сборки своих плагинов для SourceMod. Он очень упрощает жизнь, позволяя не собирать и не публиковать вручную плагины в разделе Releases. Я просто нажимаю кнопку, заполняю поля, и... Всё. Спустя некоторое время после создания релиза, у него появляется архив с всеми файлами.
Собирать можно проекты на любых языках, как и гонять тесты.
Выглядит круто, правда? Давайте собирать релизы для аддонов XF в Тревисе!
К ресурсу я приложил пример конфига для Travis, который позволит чисто собирать релизы с предварительным импортом содержимого папки
_output
в базу (необходимо, чтобы возможно было сформировать XML-файлы с фразами и т.д.).Суть Тревиса заключается в том, что Вам предоставляют чистую виртуальную машину, где уже установлены необходимые Вам пакеты, а потом из конфига просто "выполняются команды". Поскольку машина - голая, нам понадобится устанавливать XenForo. Потому необходимо куда-то залить архив. Этот вопрос я оставлю на Вас.
Логинимся на , авторизуемся, даём права. Находим наш репозиторий, переходим в настройки:
Переходим к Environment Variables:
Для моего скрипта, понадобится заполнить три переменных (две из которых необходимо скрывать):
XENFORO_ADDON_ID
. Идентификатор Вашего аддона.XENFORO_BASEURL
. Базовая ссылка на сервер, откуда будут браться архивы с движком.XENFORO_FILENAME
. Имя архива с движком на удалённом сервере.
После заполнения всех переменных, получаем такую картину:
Поскольку разрешение на отображение BaseURL и FileName мы не давали, они будут скрыты при сборке, и даже не будут, соответственно, отображаться. А любые попытки вывода - пресекаться (значение будет заменяться на
[secure]
):Заполнили все поля? Отлично!
С некоторых пор, Travis позволяет проверить Ваш конфиг, запустив тестовый билд с тем, что уже лежит в репе. Раньше приходилось постоянно коммитить
.travis.yml
с правками. Воспользуемся этим.Пункт находится там же, где и переход в настройки:
В всплывающем окне выбираем любой бранч, пишем имя коммита (если хотим) и вставляем в поле конфиг:
После придётся подождать.
Travis будет искать свободное место для Вашей пустой виртуальной машины, после запустит и начнёт всё разворачивать:
Весь
Job log
обновляется в интерактивном режиме, потому Вы сможете видеть, что прямо сейчас делается на Виртуальной машине.По завершению сборки, у репозитория обновится состояние, и Вы сможете узреть, собирается аддон или нет:
В моём случае, аддон даже не устанавливается из-за отсутствия зависимости в виде установленного
[Telegram] Core
, но это уже совсем другая история...Если всё отлично - делаем коммит
.travis.yml
с последующим пушем. Аддон повторно пойдёт на сборку, поскольку Travis по-умолчанию триггерится на коммиты.Если что-то всё же пошло не так - правим скрипт, пробуем повторно запустить сборку.
Вот так легко и просто можно настроить проверку возможности установить аддон с последующей сборкой. Публикацию релизов на Гитхабе в разделе Releases рассмотрю чуть позже, в отдельном ресурсе. Или можете сами разобраться. Всё очень просто. Официальный гайд (если его можно так назвать) .
Публиковать, кстати, итоговый билд можно куда угодно. Хоть вместо публикации на подготовленные Тревисом варианты - запустить скрипт, который всё сделает. Таким образом можно автоматизировать публикацию релизов у себя на форуме (привет, REST API!).
Пример собирающегося уже в Тревисе аддона (но пока без публикаций релизов; конфиг для Тревиса был составлен ~1.5 часа назад):
P.S.: В данном конфиге предполагается, что все файлы аддона лежат в папке
upload/
на Гите. Если это не так - поправьте путь.