# java-ci-cd **Repository Path**: appleOfGray/java-ci-cd ## Basic Information - **Project Name**: java-ci-cd - **Description**: Jenkins 替代 - **Primary Language**: Java - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-07 - **Last Updated**: 2026-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 流程执行平台(Jenkins 替代) 轻量级流程(流水线)执行系统:可视化拖拽编排节点脚本,逐步执行,支持 HTTP 触发接口与 zip 导入导出。 ## 技术栈 - 后端:Python 3.12 + Flask 3.0 + waitress 3.0 + SQLite - 前端:Vue 3 + Vite + Pinia + Vue Router + TypeScript + Element Plus ## 快速开始 ### 1. 前端 ```bash cd frontend npm run build # 产物输出到 frontend/dist ``` ### 2. 后端 ```bash cd backend pip install -r requirements.txt # 首次运行安装依赖(Flask + waitress) python run.py ``` 依赖安装后, 也可以直接双击运行 `backend/start.bat`(Windows) 或执行 `backend/start.sh`(Linux) 前端构建后 Flask 会自动托管前端页面, 启动后台并直接访问 `http://{ip}:5000/` 即可。 ## 账号 - 首次启动自动创建管理员账号: `admin / admin123` - 登录后可在「账号管理」新增账号、修改密码、删除账号(仅管理员可见) - 管理员可查看/管理所有账号的流程,普通用户只能看到自己创建的流程 - 系统始终保留至少一个管理员:最后一个管理员不能被删除,也不能被改角色 ## 触发接口 流程列表点「接口触发」可复制带 token 的触发链接,请求该链接即执行流程(与页面点执行一致): ```bash # 方式一:token 放在查询参数(即复制出来的链接形式) curl "http://{ip}:5000/excute/1?token={登录拿到的 token}" # 方式二:token 放在请求头 curl -H "Authorization: Bearer {token}" "http://{ip}:5000/excute/1" ``` - 执行方式为同步:全部成功返回 `{"流程id":1,"allOver":true}`,中途失败返回 `subList` 明细 - 只有流程创建者本人或管理员可以触发;未带 token 会返回 `unauthorized` - token 由登录接口 `/api/auth/login` 下发,只在服务进程内存中有效,重启后需重新登录 ## 执行日志 每次执行都会写日志,只保留**最近一次**的记录(再次执行时自动清理上一次): ``` backend/data/logs/{流程id}/run-YYYYMMDD-HHMMSS-xxxxxx.log 本次执行完整日志(触发方式/账号、各节点输出、错误) backend/data/logs/{流程id}/history.log 执行历史(与日志文件同步,只留最近一次) ``` - 执行页面右上角「查看日志」可直接看日志内容,切换文件即可;超大文件只回显末尾部分 - 脚本输出是**分块读取并实时写入日志**的,不会把整段输出堆在内存里 - 执行页面会显示上次运行时间与结果(来自数据库,服务重启后依然可见) - 节点详情弹窗里也能看到本次执行对应的日志文件名 ## 环境变量 | 变量 | 默认值 | 说明 | | --- | --- | --- | | `FLOW_DATA_DIR` | `backend/data` | 数据根目录(数据库、流程脚本、执行日志) | | `FLOW_HOST` | `0.0.0.0` | 监听地址 | | `FLOW_PORT` | `5000` | 监听端口 | | `FLOW_EXEC_TIMEOUT` | `3600` | 单节点脚本执行超时(秒) | | `FLOW_LOG_KEEP` | `1` | 每个流程保留的执行记录数,`1` 表示只留最近一次,`0` 表示不限制 | | `FLOW_ADMIN_USER` | `admin` | 首次启动创建的管理员账号 | | `FLOW_ADMIN_PASS` | `admin123` | 首次启动创建的管理员密码 |