chore: настроить CI с автотегированием и генерацией ARCHITECTURE.md
- generated/ возвращён в git - CI: генерация docs → коммит generated/ → тег (semver patch) → билд → деплой - защита от цикла через [skip ci] в коммите CI - Dockerfile упрощён: убраны хаки с sed и cp в public - ссылка на ARCHITECTURE.md ведёт на raw-файл в Gitea
This commit is contained in:
@@ -5,11 +5,64 @@ on:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
docs:
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: Генерация ARCHITECTURE.md
|
||||
run: |
|
||||
npm ci
|
||||
npm run docs
|
||||
|
||||
- name: Коммит generated/
|
||||
run: |
|
||||
git config user.name "CI Bot"
|
||||
git config user.email "ci@gromlab.ru"
|
||||
git add generated/
|
||||
if git diff --cached --quiet; then
|
||||
echo "ARCHITECTURE.md не изменился, пропуск"
|
||||
echo "CHANGED=false" >> $GITHUB_ENV
|
||||
else
|
||||
git commit -m "docs: обновить ARCHITECTURE.md [skip ci]"
|
||||
git push origin main
|
||||
echo "CHANGED=true" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Автоматический тег (semver patch)
|
||||
run: |
|
||||
LAST_TAG=$(git tag -l 'v*' --sort=-v:refname | head -1)
|
||||
if [ -z "$LAST_TAG" ]; then
|
||||
NEW_TAG="v0.1.0"
|
||||
else
|
||||
MAJOR=$(echo "$LAST_TAG" | cut -d. -f1)
|
||||
MINOR=$(echo "$LAST_TAG" | cut -d. -f2)
|
||||
PATCH=$(echo "$LAST_TAG" | cut -d. -f3)
|
||||
NEW_TAG="${MAJOR}.${MINOR}.$((PATCH + 1))"
|
||||
fi
|
||||
git tag "$NEW_TAG"
|
||||
git push origin "$NEW_TAG"
|
||||
echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV
|
||||
echo "Создан тег: $NEW_TAG"
|
||||
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
needs: docs
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: main
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
Reference in New Issue
Block a user