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

Сборка и публикация релиза

Сборка и публикация релиза

Документация для вендора по сборке дистрибутивов Portal.

Версия

Версия продукта задаётся в файле VERSION (корень репозитория) и в backend/Directory.Build.props.

Для релиза создайте git tag:

Окно терминала
git tag v1.0.0
git push origin v1.0.0

GitHub Actions workflow .github/workflows/release.yml соберёт артефакты автоматически.

Локальная сборка (все bundle)

Окно терминала
chmod +x deploy/scripts/build-release.sh deploy/**/*.sh
./deploy/scripts/build-release.sh

Результат в dist/:

АртефактСодержимое
portal-1.0.0-docker-bundle.tar.gzCompose + docker load образы
portal-1.0.0-k8s-bundle.tar.gzHelm chart + образы
portal-1.0.0-native-linux-amd64.tar.gzLinux бинарники + install
portal-1.0.0-native-windows-amd64.zipWindows бинарники + install.ps1
portal-1.0.0-website.tar.gzСайт продукта (лендинг + документация из docs/)
portal-1.0.0-full.tar.gzВсё вместе (+ website-deploy/ с nginx-конфигом)

Опции:

Окно терминала
./deploy/scripts/build-release.sh --skip-docker # только native + website
./deploy/scripts/build-release.sh --skip-native # только docker/k8s + website
./deploy/scripts/build-release.sh --skip-website # без сборки сайта (если нет Node.js)

Сборка по отдельности

Окно терминала
# Docker (air-gapped)
./deploy/docker/package.sh
# Kubernetes
./deploy/helm/package.sh
# Native Linux
./deploy/native/linux/build.sh && ./deploy/native/linux/package.sh
# Native Windows (кросс-компиляция на Linux)
./deploy/native/windows/build.sh win-x64 && ./deploy/native/windows/package.sh

Docker-образы

Окно терминала
export PORTAL_VERSION=1.0.0
docker build -f backend/Dockerfile --target api -t portal/api:$PORTAL_VERSION backend
docker build -f backend/Dockerfile --target worker -t portal/worker:$PORTAL_VERSION backend
docker build -f frontend/Dockerfile -t portal/frontend:$PORTAL_VERSION frontend
docker build -f docker/db-init.Dockerfile -t portal/db-init:$PORTAL_VERSION .

Лицензии

Окно терминала
PORTAL_LICENSE_HMAC_SECRET=your-production-secret \
./deploy/tools/license-generate.sh \
--edition enterprise --max-users 5000 --expires 2027-12-31 > LICENSE.key

CI

  • ci.yml — тесты + helm lint на каждый PR
  • release.yml — полная сборка на tag v*

Артефакты доступны в GitHub Actions → Release workflow → Artifacts.

Air-gapped поставка

  1. Передайте клиенту portal-X.Y.Z-full.tar.gz
  2. Клиент выбирает канал по choose-install-method.md
  3. Docker: docker load -i images/portal-images.tar
  4. Лицензия: portal-cli license activate --file LICENSE.key