update
This commit is contained in:
29
backend/pipeline_migrate.py
Normal file
29
backend/pipeline_migrate.py
Normal file
@@ -0,0 +1,29 @@
|
||||
"""Миграция черновика конвейера: плоский список фаз → этапы (стенды) с фазами и проверками."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import uuid
|
||||
from typing import Any
|
||||
|
||||
|
||||
def migrate_definition(defn: Any) -> dict:
|
||||
"""Приводит definition к schema_version 2 с ключом stages."""
|
||||
if not isinstance(defn, dict):
|
||||
return {"schema_version": 2, "stages": []}
|
||||
if defn.get("stages"):
|
||||
return defn
|
||||
phases = defn.get("phases") or []
|
||||
if not phases:
|
||||
return {"schema_version": 2, "stages": []}
|
||||
return {
|
||||
"schema_version": 2,
|
||||
"stages": [
|
||||
{
|
||||
"id": str(uuid.uuid4()),
|
||||
"name": "Этап 1",
|
||||
"description": "Импорт: ранее фазы задавались без этапов (стендов).",
|
||||
"checks": [],
|
||||
"phases": phases,
|
||||
}
|
||||
],
|
||||
}
|
||||
Reference in New Issue
Block a user