Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c6bac33c71 |
@@ -0,0 +1,30 @@
|
|||||||
|
## 0.10.0
|
||||||
|
|
||||||
|
Первый стабильный релиз: **PostgreSQL 17**, два способа установки.
|
||||||
|
|
||||||
|
### Установка — Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout v0.10.0
|
||||||
|
cp .env.docker.example .env
|
||||||
|
docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
### Установка — без Docker (Ubuntu)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout v0.10.0
|
||||||
|
bash scripts/setup-postgres-ubuntu.sh
|
||||||
|
cp .env.example .env
|
||||||
|
npm install --omit=dev
|
||||||
|
systemctl enable --now shop
|
||||||
|
```
|
||||||
|
|
||||||
|
### Что входит
|
||||||
|
|
||||||
|
- Каталог, корзина, регистрация, заказы
|
||||||
|
- Docker Compose (app + postgres, опционально Caddy)
|
||||||
|
- systemd + Caddy на хосте
|
||||||
|
- `/health`, скрипты диагностики
|
||||||
|
|
||||||
|
Полная документация: [docs/RELEASE-0.10.md](docs/RELEASE-0.10.md)
|
||||||
+16
-1
@@ -53,9 +53,24 @@ Caddy на хосте — см. `README.md`, раздел «Caddy».
|
|||||||
- С **SQLite**: раздел «Переход с SQLite на PostgreSQL 17» в README
|
- С **SQLite**: раздел «Переход с SQLite на PostgreSQL 17» в README
|
||||||
- С **0.10-beta**: `git pull`, `npm install`, `systemctl restart shop`
|
- С **0.10-beta**: `git pull`, `npm install`, `systemctl restart shop`
|
||||||
|
|
||||||
## Тег
|
## Тег и Release в Gitea
|
||||||
|
|
||||||
|
Тег уже в репозитории:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git fetch --tags
|
git fetch --tags
|
||||||
git checkout v0.10.0
|
git checkout v0.10.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Release на сайте Gitea** (раздел Releases, не только Tags):
|
||||||
|
|
||||||
|
1. Откройте: `https://git.evilfox.cc/test/shop10/releases/new`
|
||||||
|
2. Tag: `v0.10.0`, Title: `0.10.0`
|
||||||
|
3. Описание — из файла `.release-notes/v0.10.0.md`
|
||||||
|
|
||||||
|
Или из CLI (нужен токен):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export GITEA_TOKEN=ваш_токен
|
||||||
|
bash scripts/publish-gitea-release.sh 0.10.0
|
||||||
|
```
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Публикация Release в Gitea (не только git tag)
|
||||||
|
# Использование:
|
||||||
|
# export GITEA_TOKEN=ваш_токен # Настройки → Приложения → Токен доступа
|
||||||
|
# bash scripts/publish-gitea-release.sh 0.10.0
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
VERSION="${1:-0.10.0}"
|
||||||
|
TAG="v${VERSION#v}"
|
||||||
|
GITEA_URL="${GITEA_URL:-https://git.evilfox.cc}"
|
||||||
|
OWNER="${GITEA_OWNER:-test}"
|
||||||
|
REPO="${GITEA_REPO:-shop10}"
|
||||||
|
|
||||||
|
if [ -z "${GITEA_TOKEN:-}" ]; then
|
||||||
|
echo "Задайте GITEA_TOKEN (токен с правом write:repository)"
|
||||||
|
echo " export GITEA_TOKEN=..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
NOTES_FILE="$(dirname "$0")/../.release-notes/${TAG}.md"
|
||||||
|
if [ ! -f "$NOTES_FILE" ]; then
|
||||||
|
NOTES_FILE="$(dirname "$0")/../CHANGELOG.md"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BODY=$(sed -n "/## \[${VERSION#v}\]/,/^## \[/p" "$NOTES_FILE" 2>/dev/null | sed '$d' || cat "$NOTES_FILE")
|
||||||
|
if [ -z "$BODY" ]; then
|
||||||
|
BODY="Release ${TAG} — см. CHANGELOG.md"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Экранирование JSON
|
||||||
|
BODY_JSON=$(printf '%s' "$BODY" | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read()))')
|
||||||
|
|
||||||
|
HTTP=$(curl -sS -o /tmp/gitea-release.json -w "%{http_code}" -X POST \
|
||||||
|
"${GITEA_URL}/api/v1/repos/${OWNER}/${REPO}/releases" \
|
||||||
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"tag_name\":\"${TAG}\",\"name\":\"${VERSION#v}\",\"body\":${BODY_JSON},\"target_commitish\":\"main\",\"prerelease\":false}")
|
||||||
|
|
||||||
|
if [ "$HTTP" = "201" ]; then
|
||||||
|
echo "Release создан: ${GITEA_URL}/${OWNER}/${REPO}/releases/tag/${TAG}"
|
||||||
|
cat /tmp/gitea-release.json | python3 -m json.tool 2>/dev/null || cat /tmp/gitea-release.json
|
||||||
|
elif [ "$HTTP" = "409" ]; then
|
||||||
|
echo "Release ${TAG} уже существует — обновление..."
|
||||||
|
RELEASE_ID=$(curl -sS "${GITEA_URL}/api/v1/repos/${OWNER}/${REPO}/releases/tags/${TAG}" \
|
||||||
|
-H "Authorization: token ${GITEA_TOKEN}" | python3 -c "import json,sys; print(json.load(sys.stdin)['id'])")
|
||||||
|
curl -sS -X PATCH "${GITEA_URL}/api/v1/repos/${OWNER}/${REPO}/releases/${RELEASE_ID}" \
|
||||||
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"name\":\"${VERSION#v}\",\"body\":${BODY_JSON}}" | python3 -m json.tool
|
||||||
|
echo "Обновлено: ${GITEA_URL}/${OWNER}/${REPO}/releases/tag/${TAG}"
|
||||||
|
else
|
||||||
|
echo "Ошибка HTTP ${HTTP}"
|
||||||
|
cat /tmp/gitea-release.json
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user