update releases script

This commit is contained in:
Alex Ant
2025-04-16 22:02:08 +05:00
parent c446e32a8a
commit 5673e8abe8
5 changed files with 45 additions and 35 deletions
+1 -1
View File
@@ -2,5 +2,5 @@ node_modules/
lerna-debug.log
components/controller/graph.png
blockchain-data/
scripts/changelog-prompt.txt
scripts/changelog-prompt.md
scripts/changelog-release.md
-1
View File
@@ -1 +0,0 @@
./generate-release.sh 2025-04-01 v2.2.11 "фокус на новых фичах и улучшении UX" --open
+21 -27
View File
@@ -1,15 +1,11 @@
#!/bin/bash
START_DATE="$1"
VERSION="$2"
FOCUS="$3"
OPEN="$4"
PROMPT_FILE="changelog-prompt.txt"
INFO_FILE="release-info.md"
PROMPT_FILE="changelog-prompt.md"
OUTPUT_FILE="changelog-release.md"
if [ -z "$START_DATE" ] || [ -z "$VERSION" ]; then
echo "Использование: ./generate-full-changelog.sh <start-date> <version> [focus] [--open]"
if [ ! -f "$INFO_FILE" ]; then
echo "❌ Файл $INFO_FILE не найден"
exit 1
fi
@@ -18,6 +14,16 @@ if [ -z "$OPENAI_API_KEY" ]; then
exit 1
fi
# Извлекаем данные
VERSION=$(grep "^VERSION:" "$INFO_FILE" | cut -d':' -f2- | xargs)
START_DATE=$(grep "^FROM DATE:" "$INFO_FILE" | cut -d':' -f2- | xargs)
COMMENT=$(awk '/^COMMENT:/{flag=1; next} /^ *$/{flag=0} flag' "$INFO_FILE")
if [ -z "$VERSION" ] || [ -z "$START_DATE" ]; then
echo "В файле $INFO_FILE должны быть строки: VERSION и FROM DATE"
exit 1
fi
echo "📥 Сбор закрытых issue после $START_DATE..."
ISSUES=$(
@@ -30,7 +36,7 @@ if [ -z "$ISSUES" ]; then
exit 0
fi
# Формирование промпта
# Формируем промпт
cat <<EOF > "$PROMPT_FILE"
Сгенерируй changelog для версии $VERSION.
@@ -42,16 +48,12 @@ cat <<EOF > "$PROMPT_FILE"
✨ Новые функции
🐛 Исправления ошибок
🔧 Улучшения
- Каждый пункт списка должен указывать номер issue как markdown-ссылку на https://github.com/coopenomics/mono/issues/Номер (например: [#123](https://github.com/coopenomics/mono/issues/123))
- Каждый пункт списка должен быть в формате:
- [#Номер](https://github.com/coopenomics/mono/issues/Номер): Краткое описание
- Пиши кратко, строго и по делу.
EOF
if [ -n "$FOCUS" ]; then
echo "Комментарий разработчика для описания релиза: $FOCUS" >> "$PROMPT_FILE"
fi
cat <<EOF >> "$PROMPT_FILE"
Комментарий разработчика для описания релиза:
$COMMENT
Ниже список закрытых issues, начиная с $START_DATE:
@@ -59,15 +61,6 @@ $ISSUES
EOF
echo "✅ Промпт сохранён в $PROMPT_FILE"
if [ "$OPEN" == "--open" ]; then
if command -v subl &>/dev/null; then
subl "$PROMPT_FILE"
else
echo "⚠️ 'subl' не найден. Установи CLI для Sublime или открой файл вручную."
fi
fi
echo "📡 Отправка запроса в OpenAI через HTTP-прокси localhost:801..."
PROMPT=$(cat "$PROMPT_FILE" | jq -Rs .)
@@ -84,6 +77,7 @@ RESPONSE=$(curl https://api.openai.com/v1/chat/completions \
\"max_tokens\": 10240
}")
echo "$RESPONSE" | jq -r '.choices[0].message.content' > "$OUTPUT_FILE"
RELEASE_BODY=$(echo "$RESPONSE" | jq -r '.choices[0].message.content')
echo "$RELEASE_BODY" > "$OUTPUT_FILE"
echo "✅ Changelog сохранён в $OUTPUT_FILE"
+19 -6
View File
@@ -1,18 +1,31 @@
#!/bin/bash
VERSION="$1"
INFO_FILE="release-info.md"
OUTPUT_FILE="changelog-release.md"
RELEASES_FILE="../CHANGELOG.md"
if [ ! -f "$INFO_FILE" ]; then
echo "❌ Файл $INFO_FILE не найден"
exit 1
fi
VERSION=$(grep "^VERSION:" "$INFO_FILE" | cut -d':' -f2- | xargs)
if [ -z "$VERSION" ]; then
echo "Укажи версию: ./publish-release.sh v2.2.11"
echo "❌ Не указана версия в $INFO_FILE"
exit 1
fi
if [ ! -f changelog-release.md ]; then
echo "Файл changelog-release.md не найден."
if [ ! -f "$OUTPUT_FILE" ]; then
echo "Файл $OUTPUT_FILE не найден"
exit 1
fi
gh release create "$VERSION" -F changelog-release.md -t "Release $VERSION" --verify-tag
echo "🚀 Публикация GitHub Release $VERSION..."
gh release create "$VERSION" -F "$OUTPUT_FILE" -t "Release $VERSION" --verify-tag
echo "🎉 Release $VERSION опубликован."
# Добавление в начало ../RELEASES.md
echo "📝 Обновление $RELEASES_FILE..."
echo -e "$(cat "$OUTPUT_FILE")\n\n---\n\n$(cat "$RELEASES_FILE" 2>/dev/null)" > "$RELEASES_FILE"
echo "🎉 Release $VERSION опубликован и добавлен в $RELEASES_FILE"
+4
View File
@@ -0,0 +1,4 @@
VERSION: v2.2.11
FROM DATE: 2025-03-27
COMMENT:
<комментарий к релизу>