diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0fa84a5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +name: CI + +# Проверяем только pull request'ы и ручной запуск. +# Деплой живёт отдельно, в deploy.yml, и реагирует только на push в main. +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: site-ci-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '22.23.4' + cache: 'npm' + + - name: "Guard: без внутренних файлов" + run: | + bad=$(git ls-files | grep -E '^(AGENTS\.md|SITE_HANDOFF\.md|docs/internal/)' || true) + if [ -n "$bad" ]; then + echo "::error::В ветке появились внутренние файлы:" + echo "$bad" + exit 1 + fi + echo "Ветка чистая." + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Upload dist + uses: actions/upload-artifact@v4 + with: + name: site-dist + path: dist + retention-days: 3 diff --git a/README.md b/README.md index 0087e2a..8df3c1b 100644 --- a/README.md +++ b/README.md @@ -46,4 +46,6 @@ public/ | `main` | прод: то, что видят пользователи | GitHub Pages, автоматически | | `dev` | разработка: черновики, эксперименты | нет | -Работа идёт в `dev`, в `main` попадает только проверенная сборка (`npm run build` + просмотр `npm run preview`). +Работа идёт в `dev`. `main` — это опубликованный сайт: push в него запускает деплой, поэтому +`dev → main` мержится только при выпуске релиза (или чтобы срочно поправить ошибку на проде). +Перед PR: `npm run build` и `npm run preview`. diff --git a/package.json b/package.json index d244b0a..61a0c85 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "validum-site", "type": "module", - "version": "0.1.0", + "version": "0.2.0", "engines": { "node": ">=22.23.4" }, diff --git a/src/components/Header.astro b/src/components/Header.astro index 28f88c0..29acc23 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -26,7 +26,7 @@ const currentPath = Astro.url.pathname; Validum - +