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 win64 macos
  • Release 1.1.0 - linux-amd64 win64 macos
  • Release 1.2.0 - linux-amd64 win64

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

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

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

  • Release 1.0.0 - linux-amd64-1.0.0 macos-one
  • Release 1.0.1 - linux-amd64-1.0.1 win64-and-x86 macos-two
  • Release 1.1.0 - linux-amd64-1.1.0 win64 macos-three
  • Release 1.2.0 - linux-amd64-1.2.0 win64-and-x68

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