Skip to content

Commit 8ee5ddd

Browse files
committed
chore(workflows): добавлено извлечение заметок о релизе и создание GitHub релиза
1 parent 19ebaaf commit 8ee5ddd

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,43 @@ jobs:
8787
git-cliff --config cliff.toml --tag "${{ steps.version.outputs.version_without_v }}" --output CHANGELOG.md
8888
echo "✅ CHANGELOG сгенерирован"
8989
90+
- name: Extract release notes
91+
id: release_notes
92+
run: |
93+
if [ -f CHANGELOG.md ]; then
94+
# Извлекаем только последний релиз (первый ## [version] в файле после заголовка)
95+
RELEASE_NOTES=$(awk '
96+
/^## \[/ {
97+
if (found) exit
98+
found = 1
99+
}
100+
found { print }
101+
' CHANGELOG.md)
102+
103+
# Удаляем пустые строки в конце
104+
RELEASE_NOTES=$(echo "$RELEASE_NOTES" | sed -e :a -e '/^\n*$/{$d;N;ba' -e '}')
105+
106+
# Если changelog пустой или слишком короткий, используем fallback
107+
if [ -z "$RELEASE_NOTES" ] || [ ${#RELEASE_NOTES} -lt 20 ]; then
108+
echo "Changelog is empty or too short, using fallback"
109+
RELEASE_NOTES="## Изменения
110+
111+
См. [историю коммитов](https://github.com/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.ref }})"
112+
fi
113+
else
114+
echo "CHANGELOG.md not found, using fallback"
115+
RELEASE_NOTES="## Изменения
116+
117+
См. [историю коммитов](https://github.com/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.ref }})"
118+
fi
119+
120+
# Многострочный вывод в GitHub Actions
121+
{
122+
echo 'release_notes<<EOF'
123+
echo "$RELEASE_NOTES"
124+
echo EOF
125+
} >> $GITHUB_OUTPUT
126+
90127
- name: Commit changes
91128
run: |
92129
git add package.json package-lock.json CHANGELOG.md
@@ -103,3 +140,15 @@ jobs:
103140
git push origin main
104141
git push origin "${{ steps.version.outputs.version_with_v }}"
105142
echo "✅ Изменения и тег отправлены в репозиторий"
143+
144+
- name: Create GitHub Release
145+
uses: softprops/action-gh-release@v1
146+
with:
147+
tag_name: ${{ steps.version.outputs.version_with_v }}
148+
name: Релиз ${{ steps.version.outputs.version_with_v }}
149+
body: |
150+
## Версия ${{ steps.version.outputs.version_without_v }}
151+
152+
${{ steps.release_notes.outputs.release_notes }}
153+
draft: false
154+
prerelease: false

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ CHANGELOG.md
1616
*.min.js
1717
*.bundle.js
1818

19+
# GitHub Actions workflows (содержат сложные многострочные блоки)
20+
.github/workflows/*.yml
21+
.github/workflows/*.yaml

0 commit comments

Comments
 (0)