Перейти к содержимому

Сборка Notifly

  1. Настройка среды разработки

  2. Сборка пользовательского интерфейса

    Окно терминала
    $ (cd ui && yarn build)
  3. Сборка двоичного файла 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