Сборка Notifly
-
Сборка пользовательского интерфейса
Окно терминала $ (cd ui && yarn build) -
Сборка двоичного файла Go
Рекомендуется собирать Notifly с помощью docker-образов notifly/build, это гарантирует, что плагины будут совместимы с собранным двоичным файлом (так как используется одна и та же среда сборки).
Установите LD_FLAGS с информацией метаданных, такой как версия или коммит:
Окно терминала $ export LD_FLAGS="-w -s -X main.Version=$(git describe --tags | cut -c 2-) -X main.BuildDate=$(date "+%F-%T") -X main.Commit=$(git rev-parse --verify HEAD) -X main.Mode=prod";Выполните задачи Makefile Notifly для сборки Notifly.
Окно терминала # собирает все поддерживаемые платформы$ make build# собирает конкретную платформу$ make build-linux-amd64$ make build-linux-arm-7$ make build-linux-arm64$ make build-linux-386$ make build-windows-amd64$ make build-windows-386Если вы не хотите использовать docker-образы, вы можете собрать Notifly следующим образом:
Окно терминала $ go build -ldflags="$LD_FLAGS" -o notifly-serverПроект имеет ссылку CGO (из-за sqlite3), поэтому для компиляции для других платформ требуется кросс-компилятор CGO (docker-образы notifly/build уже содержат необходимые кросс-компиляторы).
Окно терминала $ CGO_ENABLED=1 CC=${CROSS_GCC} CXX=${CROSS_G++} GOOS=${TARGET_GOOS} GOARCH=${TARGET_GOARCH} \go build -ldflags="$LD_FLAGS" -o notifly-server