mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-10-15 21:35:31 +00:00
feat: 支持 v2 插件、独立前端和签名制品发布 (#130)
* feat: 支持 v2 插件、原生扩展与签名发布 * fix: 修复测试 * feat: 增强宿主 SDK、运行观测与制品维护能力 * feat: 增强文件传输、配置观测与本地开发能力 * feat: 支持 SSE 实时事件流并完善开发脚手架 * feat: 完善长连接鉴权复核与关闭回收 * feat: 增强生命周期与任务关闭可靠性 * feat: 收紧健康检查契约并补齐前端与真实网络验收 * feat: 增加SDK溯源与离线更新工具并验证跨版本兼容 * feat: 增加持久化业务示例与受控 Python 交付 * feat: 增加统一运行诊断与多worker状态观测 * feat: 增加固定目标发布等待与自动验收 * fix: 修复多环境插件部署前缀与代理配置不一致 * fix: 修复测试
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
name: Plugin Release Integration
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [master]
|
||||
paths:
|
||||
- 'ruoyi-fastapi-backend/plugins/core/**'
|
||||
- 'ruoyi-fastapi-backend/plugins/examples/python/task_demo/**'
|
||||
- 'ruoyi-fastapi-frontend/src/utils/pluginBridge.js'
|
||||
- 'ruoyi-fastapi-backend/config/**'
|
||||
- 'ruoyi-fastapi-backend/cli/groups/plugin/**'
|
||||
- 'ruoyi-fastapi-backend/cli/runtime/plugin/**'
|
||||
- 'ruoyi-fastapi-backend/module_plugin/**'
|
||||
- 'ruoyi-fastapi-backend/server.py'
|
||||
- 'ruoyi-fastapi-backend/app.py'
|
||||
- 'ruoyi-fastapi-backend/sql/ruoyi-fastapi*.sql'
|
||||
- 'ruoyi-fastapi-backend/scripts/plugin_release_integration.py'
|
||||
- 'ruoyi-fastapi-backend/scripts/plugin_task_integration.py'
|
||||
- 'ruoyi-fastapi-backend/tests/plugins/**'
|
||||
- 'ruoyi-fastapi-backend/tests/cli/root/test_plugin_artifact_commands.py'
|
||||
- 'ruoyi-fastapi-backend/tests/cli/root/test_plugin_release_wait.py'
|
||||
- 'ruoyi-fastapi-backend/tests/cli/root/test_plugin_diagnostics.py'
|
||||
- 'ruoyi-fastapi-backend/tests/cli/runtime/plugin/**'
|
||||
- 'ruoyi-fastapi-backend/tests/module_plugin/**'
|
||||
- 'ruoyi-fastapi-backend/tests/server/test_plugin_runtime.py'
|
||||
- 'ruoyi-fastapi-backend/tests/sql/test_plugin_release_schema.py'
|
||||
- 'ruoyi-fastapi-backend/pyproject.toml'
|
||||
- 'ruoyi-fastapi-backend/requirements.txt'
|
||||
- 'ruoyi-fastapi-backend/requirements-pg.txt'
|
||||
- '.github/workflows/plugin-release-integration.yml'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python: ['3.10', '3.11', '3.12', '3.13']
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ruoyi-fastapi-backend
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: ci-only-mysql
|
||||
ports: ['3306:3306']
|
||||
options: >-
|
||||
--health-cmd="mysqladmin ping -h localhost"
|
||||
--health-interval=10s --health-timeout=5s --health-retries=12
|
||||
postgres:
|
||||
image: postgres:14
|
||||
env:
|
||||
POSTGRES_PASSWORD: ci-only-postgres
|
||||
ports: ['5432:5432']
|
||||
options: >-
|
||||
--health-cmd="pg_isready -U postgres"
|
||||
--health-interval=10s --health-timeout=5s --health-retries=12
|
||||
redis:
|
||||
image: redis:6.2
|
||||
ports: ['6379:6379']
|
||||
options: >-
|
||||
--health-cmd="redis-cli ping"
|
||||
--health-interval=10s --health-timeout=5s --health-retries=12
|
||||
env:
|
||||
RUOYI_PLUGIN_IT_ALLOW: '1'
|
||||
RUOYI_IT_MYSQL_PASSWORD: ci-only-mysql
|
||||
RUOYI_IT_PG_PASSWORD: ci-only-postgres
|
||||
RUOYI_IT_REDIS_PASSWORD: ''
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: ${{ matrix.python }}
|
||||
cache: pip
|
||||
cache-dependency-path: ruoyi-fastapi-backend/requirements*.txt
|
||||
- name: Install host dependencies
|
||||
run: python -m pip install -r requirements.txt -r requirements-pg.txt
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: '22'
|
||||
- name: Test and build task plugin bundle
|
||||
run: |
|
||||
npm --prefix plugins/examples/python/task_demo/web install --no-audit --no-fund --package-lock=false
|
||||
npm --prefix plugins/examples/python/task_demo/web test
|
||||
npm --prefix plugins/examples/python/task_demo/web run build
|
||||
- name: Verify MySQL and Redis maintenance releases
|
||||
run: python scripts/plugin_release_integration.py --engine mysql
|
||||
- name: Verify PostgreSQL and Redis maintenance releases
|
||||
run: python scripts/plugin_release_integration.py --engine postgresql
|
||||
Reference in New Issue
Block a user