- 去掉独立 aiohttp 服务器,改为标准模块(load_pipeline_service) - 存储从文件系统改 MySQL(sqlor) - 新增 3 张数据表:pipeline_tasks/task_steps/artifacts - 多租户隔离(tenant_id) - 通用 DAG 调度引擎(读 pipeline_steps 表,不硬编码业务) - 可插拔步骤处理器(register_handler by step_type) - artifact 版本管理 + 级联重跑 - init/data.json 标准 appcodes 格式 - 完整 README 文档
50 lines
1.3 KiB
Bash
Executable File
50 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
cdir=$(cd "$(dirname "$0")" && pwd)
|
|
cd "$cdir"
|
|
|
|
echo "=== pipeline-service Build ==="
|
|
|
|
# 1. Create venv if not exists
|
|
if [ ! -d py3 ]; then
|
|
python3 -m venv py3
|
|
fi
|
|
source py3/bin/activate
|
|
|
|
# 2. Install foundation packages
|
|
mkdir -p pkgs
|
|
for m in apppublic sqlor ahserver xls2ddl; do
|
|
echo "install $m ..."
|
|
cd "$cdir/pkgs"
|
|
if [ ! -d "$m" ]; then
|
|
git clone https://git.opencomputing.cn/yumoqing/$m 2>/dev/null || echo "SKIP: $m"
|
|
fi
|
|
if [ -d "$m" ]; then
|
|
cd "$m"
|
|
"$cdir/py3/bin/pip" install . 2>&1 | tail -1
|
|
fi
|
|
cd "$cdir"
|
|
done
|
|
|
|
# 3. Install self
|
|
echo "install pipeline_service ..."
|
|
"$cdir/py3/bin/pip" install . 2>&1 | tail -1
|
|
|
|
# 4. Generate DDL from models
|
|
if [ -d models ] && ls models/*.json >/dev/null 2>&1; then
|
|
echo "generating DDL ..."
|
|
"$cdir/py3/bin/json2ddl" mysql models/ > "$cdir/mysql.ddl.sql" 2>/dev/null || echo " DDL generation skipped (json2ddl not available)"
|
|
fi
|
|
|
|
# 5. Create runtime dirs
|
|
mkdir -p "$cdir/logs"
|
|
|
|
chmod +x "$cdir/scripts/load_path.py" 2>/dev/null || true
|
|
echo "=== Build complete ==="
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " 1. CREATE DATABASE pipeline;"
|
|
echo " 2. mysql -u root -p pipeline < mysql.ddl.sql"
|
|
echo " 3. Load appcodes: init/data.json via host app build.sh"
|
|
echo " 4. Register step handlers in host app"
|