diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index a1ac110..1af3d60 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -42,7 +42,9 @@ jobs: run: | set -euo pipefail backend_version="$(sed -n 's/^BACKEND_VERSION = "\(.*\)"$/\1/p' app/version.py)" - test -n "$backend_version" + case "$backend_version" in + ''|*[!0-9.]*) exit 1 ;; + esac echo "backend_version=$backend_version" >> "$GITHUB_OUTPUT" tar --exclude=.git --exclude=.env -cf "$RUNNER_TEMP/$RELEASE_NAME" . printf '%s\n' "$PROD_SSH_KEY" > "$RUNNER_TEMP/deploy_key" diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a2a49a..3253066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.8.12 + +- Передача версии в production deploy ограничена безопасным форматом. + ## 0.8.11 - CSS-ассеты админки получают версию в URL и обновляются после релиза без ручной очистки кэша браузера. diff --git a/README.md b/README.md index 9703fe6..40f0eaa 100644 --- a/README.md +++ b/README.md @@ -135,4 +135,4 @@ node --check app/static/admin.js Тесты с данными используют временную SQLite; отдельные API smoke-тесты запускают приложение с его текущей конфигурацией. Браузерная проверка: `pip install playwright`, `python -m playwright install chromium`, затем `python tests/browser_admin.py`. Она проверяет реальный рендеринг страниц, клавиатуру, диалог, фильтры и восстановление прогресса после ошибки. Скриншоты сохраняются во временную папку; путь выводится в конце. -Версия сервиса: `0.8.11`. Админка всегда показывает версии backend и frontend в footer. +Версия сервиса: `0.8.12`. Админка всегда показывает версии backend и frontend в footer. diff --git a/app/version.py b/app/version.py index 41daf9a..d496d48 100644 --- a/app/version.py +++ b/app/version.py @@ -1,3 +1,3 @@ -APP_VERSION = "0.8.11" -FRONTEND_VERSION = "0.8.11" -BACKEND_VERSION = "0.8.11" +APP_VERSION = "0.8.12" +FRONTEND_VERSION = "0.8.12" +BACKEND_VERSION = "0.8.12" diff --git a/pyproject.toml b/pyproject.toml index c9b7536..1e43d03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "miem-workers" -version = "0.8.11" +version = "0.8.12" description = "MIEM employees parser, admin API, and web admin" requires-python = ">=3.11" dependencies = [ diff --git a/tests/test_api.py b/tests/test_api.py index ed1c2e1..4321576 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -18,7 +18,7 @@ def test_health_returns_versions(): response = TestClient(app).get("/api/health") assert response.status_code == 200 - assert response.json()["backend_version"] == "0.8.11" + assert response.json()["backend_version"] == "0.8.12" def test_api_employees_and_stats_require_admin_session():