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 - v0.1.0-SNAPSHOT + v0.2.0 diff --git a/src/pages/changelog.astro b/src/pages/changelog.astro index cc729c5..baee95e 100644 --- a/src/pages/changelog.astro +++ b/src/pages/changelog.astro @@ -13,15 +13,15 @@ import BaseLayout from '../layouts/BaseLayout.astro'; - v0.1.0-SNAPSHOT - Текущая сборка - Октябрь 2026 + v0.2.0 + Актуальный релиз + Ноябрь 2026 - MVP на пути к первому публичному релизу. Apache 2.0. Git-тега пока нет — в Gradle указана версия 0.1.0-SNAPSHOT. + Пакет «Набор»: воспроизводимость, уникальность и читаемый CSV. Apache 2.0. Артефакты — в GitHub Releases, библиотеки — в Maven Central. + validum-core — zero-dependency ядро, 18 пакетов + validum-api — Spring Boot 3.5.7, 19 эндпоинтов - + validum-cli — fat JAR ~15 МБ, 8 команд Picocli + + validum-cli — fat JAR ~15 МБ, 9 команд Picocli + validum-allure — JUnit 5 Extension + 370 банков ЦБ РФ из ED807 (1380 участников, 17 типов PtType) + Счета: 12 типов, контрольный ключ по письму ЦБ № 515 (учитывает БИК подразделения) @@ -33,7 +33,12 @@ import BaseLayout from '../layouts/BaseLayout.astro'; + ОКВЭД-2: полный справочник (3069 кодов) у ЮЛ и ИП, явный код в REST и CLI + Seed-детерминизм: asOf — профиль не зависит от календарной даты + Справочник БИК обязателен — демо-набор из 30 банков удалён - + 721 тест зелёных (567 core · 80 api · 55 cli · 19 allure) + + Версия и seed в выводе: stderr-строка, заголовки REST, шапка SQL — прогон воспроизводим + + --unique: повторов ИНН/ОГРНИП/ОГРН нет, ёмкость проверяется до генерации + + CSV для Excel: csv-semicolon с русскими заголовками и BOM + + Набор из спецификации: generate --spec set.json + + Отчёт о покрытии: coverage --file clients.csv + + 769 тестов зелёных (585 core · 87 api · 78 cli · 19 allure) diff --git a/src/pages/docs/index.astro b/src/pages/docs/index.astro index c6c6311..8e0afc3 100644 --- a/src/pages/docs/index.astro +++ b/src/pages/docs/index.astro @@ -127,11 +127,11 @@ java -jar validum-cli/build/libs/validum.jar --help Java-библиотека - Публикация в Maven Central запланирована (P1.1). Пока — локальная сборка модуля: + Публикуется в Maven Central — репозиторий подключать не нужно: - ./gradlew :validum-core:jar -# артефакт: validum-core/build/libs/validum-core-0.1.0-SNAPSHOT.jar + testImplementation("io.github.validum-tech:validum-core:0.2.0") +testImplementation("io.github.validum-tech:validum-allure:0.2.0") diff --git a/src/pages/try.astro b/src/pages/try.astro index e099a88..b7deeb4 100644 --- a/src/pages/try.astro +++ b/src/pages/try.astro @@ -99,9 +99,9 @@ import TryForm from '../components/TryForm'; Java Java-библиотека - Встраивается в JUnit-тесты. Публикация в Maven Central в планах (P1.1). + Встраивается в JUnit-тесты. Публикуется в Maven Central. - ./gradlew :validum-core:jar// jar лежит в:validum-core/build/libs/validum-core-0.1.0-SNAPSHOT.jar// Maven Central — в планах (P1.1) + testImplementation("io.github.validum-tech:validum-core:0.2.0")// JUnit 5 Extension для Allure:testImplementation("io.github.validum-tech:validum-allure:0.2.0")
MVP на пути к первому публичному релизу. Apache 2.0. Git-тега пока нет — в Gradle указана версия 0.1.0-SNAPSHOT.
Пакет «Набор»: воспроизводимость, уникальность и читаемый CSV. Apache 2.0. Артефакты — в GitHub Releases, библиотеки — в Maven Central.
validum-core
validum-api
validum-cli
validum-allure
asOf
--unique
csv-semicolon
generate --spec set.json
coverage --file clients.csv
- Публикация в Maven Central запланирована (P1.1). Пока — локальная сборка модуля: + Публикуется в Maven Central — репозиторий подключать не нужно:
./gradlew :validum-core:jar -# артефакт: validum-core/build/libs/validum-core-0.1.0-SNAPSHOT.jar
testImplementation("io.github.validum-tech:validum-core:0.2.0") +testImplementation("io.github.validum-tech:validum-allure:0.2.0")
Встраивается в JUnit-тесты. Публикация в Maven Central в планах (P1.1).
Встраивается в JUnit-тесты. Публикуется в Maven Central.
./gradlew :validum-core:jar// jar лежит в:validum-core/build/libs/validum-core-0.1.0-SNAPSHOT.jar// Maven Central — в планах (P1.1)
testImplementation("io.github.validum-tech:validum-core:0.2.0")// JUnit 5 Extension для Allure:testImplementation("io.github.validum-tech:validum-allure:0.2.0")