Skip to content

Компиляция для различных платформ

Из-за особенностей Компилируемых программ, их способ доставки Пользователям отличается от Интерпретируемых. Чтобы конечному Пользователю не приходилось постоянно компилировать исходный код, для получения бинарного файла в хостингах Git репозиториев GitLab и GitHub предусмотренна система релизов.

В каждый релиз можно добавить бинарные файлы с определённым названием, такие пары обычно называют assets. GitLab и GitHub позволяют через свои API получать соответствие названия assets и ссылки на бинарный файл.

INFO

На основе данной механики Pepeunit имеет возможность обновлять Компилируемые репозитории в автоматическом режимие. Единственное условие: названия assets должны быть сквозными между различными релизами.

WARNING

Если Разработчик Компилируемого Unit хочет добавить поддержку автоматического обновления в Pepeunit, ему придётся скомпилировать и загрузить в GitLab или GitHub версии своей программы для каждой платформы. При этом название для одной и той же платформы в разных релизах должно быть одинаковым.

Пример хорошего наименования assets между релизами

  • Release 1.0.0 - linux-amd64 macos
  • Release 1.0.1 - linux-amd64 esp8266-generic macos
  • Release 1.1.0 - linux-amd64 esp8266-generic macos
  • Release 1.2.0 - linux-amd64 esp8266-generic
  • Release 1.3.0 - linux-amd64 esp8266-generic macos

Рассмотрим логику Pepeunit в этом сценарии для каждой из платформ linux-amd64, esp8266-generic и macos:

  • для linux-amd64 - Unit будет штатно обновлять все версии
  • для esp8266-generic - Unit можно будет создать начиная с версии 1.0.1, далее обновления будут идти штатно
  • для macos - Unit будет штатно обновляться до версии 1.1.0, далее автоматическое обновление будет прервано, но возобновится начиная с версии 1.3.0

Пример плохого наименования assets между релизами

  • Release 1.0.0 - linux-amd64-1.0.0 macos-one
  • Release 1.0.1 - linux-amd64-1.0.1 esp8266-and-esp8266-generic macos-two
  • Release 1.1.0 - linux-amd64-1.1.0 esp8266-generic macos-three
  • Release 1.2.0 - linux-amd64-1.2.0 esp8266-and-esp8266-generic

В данном случае Pepeunit не сможет автоматически обновлять Unit. Корректно будет работать только ручное обновление, платформу для каждой версии придётся скачивать вручную.