Собираем аддоны в CI

Собираем аддоны в CI 1.0

Нет прав для скачивания
Совместимость с XenForo
  1. 2.0
  2. 2.1
Ресурс на рефакторинге. В теле сейчас находится информация по Тревису. Позже она переедет в "Обновления", а в описании будут ссылки на каждый конкретный CI, на котором я пробовал производить настройку.

AHTUNG! Эта статья не актуальна для тех, кто использует GitHub "на полную катушку", и давно знают о CI, и как их настраивать!

Кто занимается разработкой более серьёзно, конечно же, знают о таких вещах, как Continuous Integration (сокращённо CI).
Для разработчиков бесплатных проектов, которые содержат свой код на Гитхабе (и не только), есть варианты бесплатных CI. Для Гитхаба, например, это . Что это такое - я рассказывать не буду. Кому очень интересно, загуглит сам. Если совсем вкратце, то CI упрощают жизнь, позволяя после каждого коммита или создания релиза (тега) выполнить некий набор команд на "пустой" машине (там может быть предустановлен любой интерпретатор, компилятор или СУБД). Например, создали Вы релиз на Гитхабе кнопкой, а где-то в фоне Travis для Вас прогоняет тесты и собирает релиз. Удобно, не правда ли?
Тревисом я пользуюсь около двух лет, запуская в нём сборки своих плагинов для SourceMod. Он очень упрощает жизнь, позволяя не собирать и не публиковать вручную плагины в разделе Releases. Я просто нажимаю кнопку, заполняю поля, и... Всё. Спустя некоторое время после создания релиза, у него появляется архив с всеми файлами.
1565464336978.png

1565463137103.png


Собирать можно проекты на любых языках, как и гонять тесты.
Выглядит круто, правда? Давайте собирать релизы для аддонов XF в Тревисе!

К ресурсу я приложил пример конфига для Travis, который позволит чисто собирать релизы с предварительным импортом содержимого папки _output в базу (необходимо, чтобы возможно было сформировать XML-файлы с фразами и т.д.).

Суть Тревиса заключается в том, что Вам предоставляют чистую виртуальную машину, где уже установлены необходимые Вам пакеты, а потом из конфига просто "выполняются команды". Поскольку машина - голая, нам понадобится устанавливать XenForo. Потому необходимо куда-то залить архив. Этот вопрос я оставлю на Вас.

Логинимся на , авторизуемся, даём права. Находим наш репозиторий, переходим в настройки:
1565463340577.png

Переходим к Environment Variables:
1565463418867.png

Для моего скрипта, понадобится заполнить три переменных (две из которых необходимо скрывать):
  • XENFORO_ADDON_ID. Идентификатор Вашего аддона.
  • XENFORO_BASEURL. Базовая ссылка на сервер, откуда будут браться архивы с движком.
  • XENFORO_FILENAME. Имя архива с движком на удалённом сервере.
Как Вы догадались, скрывать нужно последние две переменные. По-умолчанию, Travis скрывает всё, где не включено явно Display value in build log, потому можно не париться.
После заполнения всех переменных, получаем такую картину:
1565463760000.png

Поскольку разрешение на отображение BaseURL и FileName мы не давали, они будут скрыты при сборке, и даже не будут, соответственно, отображаться. А любые попытки вывода - пресекаться (значение будет заменяться на [secure]):
1565463862943.png

Заполнили все поля? Отлично!
С некоторых пор, Travis позволяет проверить Ваш конфиг, запустив тестовый билд с тем, что уже лежит в репе. Раньше приходилось постоянно коммитить .travis.yml с правками. Воспользуемся этим.
Пункт находится там же, где и переход в настройки:
1565463944813.png

В всплывающем окне выбираем любой бранч, пишем имя коммита (если хотим) и вставляем в поле конфиг:
1565464150647.png


После придётся подождать.
Travis будет искать свободное место для Вашей пустой виртуальной машины, после запустит и начнёт всё разворачивать:
1565464232604.png


Весь Job log обновляется в интерактивном режиме, потому Вы сможете видеть, что прямо сейчас делается на Виртуальной машине.
По завершению сборки, у репозитория обновится состояние, и Вы сможете узреть, собирается аддон или нет:
1565465771698.png

В моём случае, аддон даже не устанавливается из-за отсутствия зависимости в виде установленного [Telegram] Core, но это уже совсем другая история...

Если всё отлично - делаем коммит .travis.yml с последующим пушем. Аддон повторно пойдёт на сборку, поскольку Travis по-умолчанию триггерится на коммиты.
Если что-то всё же пошло не так - правим скрипт, пробуем повторно запустить сборку.

Вот так легко и просто можно настроить проверку возможности установить аддон с последующей сборкой. Публикацию релизов на Гитхабе в разделе Releases рассмотрю чуть позже, в отдельном ресурсе. Или можете сами разобраться. Всё очень просто. Официальный гайд (если его можно так назвать) .
Публиковать, кстати, итоговый билд можно куда угодно. Хоть вместо публикации на подготовленные Тревисом варианты - запустить скрипт, который всё сделает. Таким образом можно автоматизировать публикацию релизов у себя на форуме (привет, REST API!).

Пример собирающегося уже в Тревисе аддона (но пока без публикаций релизов; конфиг для Тревиса был составлен ~1.5 часа назад):

P.S.: В данном конфиге предполагается, что все файлы аддона лежат в папке upload/ на Гите. Если это не так - поправьте путь.
Автор
CrazyHackGUT
Скачивания
7
Просмотры
1,514
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя CrazyHackGUT

Поделиться ресурсом

Последние обновления

  1. OneDev

    OneDev - очень легковесный селф-хостед Git-сервер с Kanban-доской и CI/CD. Я свой инстанс кручу...
Назад
Сверху Снизу