Сборка и публикация релиза
Сборка и публикация релиза
Документация для вендора по сборке дистрибутивов Portal.
Версия
Версия продукта задаётся в файле VERSION (корень репозитория) и в backend/Directory.Build.props.
Для релиза создайте git tag:
git tag v1.0.0git push origin v1.0.0GitHub 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.gz | Compose + docker load образы |
portal-1.0.0-k8s-bundle.tar.gz | Helm chart + образы |
portal-1.0.0-native-linux-amd64.tar.gz | Linux бинарники + install |
portal-1.0.0-native-windows-amd64.zip | Windows бинарники + 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.shDocker-образы
export PORTAL_VERSION=1.0.0docker build -f backend/Dockerfile --target api -t portal/api:$PORTAL_VERSION backenddocker build -f backend/Dockerfile --target worker -t portal/worker:$PORTAL_VERSION backenddocker build -f frontend/Dockerfile -t portal/frontend:$PORTAL_VERSION frontenddocker 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.keyCI
ci.yml— тесты + helm lint на каждый PRrelease.yml— полная сборка на tagv*
Артефакты доступны в GitHub Actions → Release workflow → Artifacts.
Air-gapped поставка
- Передайте клиенту
portal-X.Y.Z-full.tar.gz - Клиент выбирает канал по choose-install-method.md
- Docker:
docker load -i images/portal-images.tar - Лицензия:
portal-cli license activate --file LICENSE.key