Add SemVer VERSION, Jenkins CI/CD, and release 0.1.1.

Ship Harbor/Hub push with latest+version tags, deploy to proxmox.devops.org.ru, and show the package version badge in Help → About.
This commit is contained in:
Sergey Antropoff
2026-07-28 00:24:05 +03:00
parent f981ca1bf1
commit f81d6186ab
21 changed files with 610 additions and 19 deletions
+2 -1
View File
@@ -37,11 +37,12 @@ def _snapshot() -> Snapshot:
def test_list_majors_includes_latest_releases() -> None:
payload = list_majors(runtime_version="9.2.3")
payload = list_majors(runtime_version="9.2.3", app_version="0.1.0")
majors_list = cast(list[dict[str, Any]], payload["majors"])
majors = {item["major"] for item in majors_list}
assert majors == {6, 7, 8, 9}
assert payload["runtime_version"] == "9.2.3"
assert payload["app_version"] == "0.1.0"
def test_list_majors_includes_artifact_urls() -> None:
+14
View File
@@ -0,0 +1,14 @@
"""SemVer helpers."""
from __future__ import annotations
from app.version import get_app_version, get_app_version_label, parse_version
def test_get_app_version_reads_version_file() -> None:
version = get_app_version()
major, minor, patch = parse_version(version)
assert major >= 0
assert minor >= 0
assert patch >= 0
assert get_app_version_label() == f"v{version}"
+4 -1
View File
@@ -111,7 +111,10 @@ async def test_ui_versions_and_catalog_endpoints() -> None:
async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as client:
versions = await client.get("/ui/api/versions")
assert versions.status_code == 200
assert {item["major"] for item in versions.json()["majors"]} == {6, 7, 8, 9}
body = versions.json()
assert {item["major"] for item in body["majors"]} == {6, 7, 8, 9}
assert body["app_version"]
assert body["app_version"].count(".") == 2
catalog = await client.get("/ui/api/catalog", params={"major": 9})
assert catalog.status_code == 200
assert catalog.json()["source_version"] == "9.2.3"