mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-10-15 13:25:45 +00:00
* feat: 支持 v2 插件、原生扩展与签名发布 * fix: 修复测试 * feat: 增强宿主 SDK、运行观测与制品维护能力 * feat: 增强文件传输、配置观测与本地开发能力 * feat: 支持 SSE 实时事件流并完善开发脚手架 * feat: 完善长连接鉴权复核与关闭回收 * feat: 增强生命周期与任务关闭可靠性 * feat: 收紧健康检查契约并补齐前端与真实网络验收 * feat: 增加SDK溯源与离线更新工具并验证跨版本兼容 * feat: 增加持久化业务示例与受控 Python 交付 * feat: 增加统一运行诊断与多worker状态观测 * feat: 增加固定目标发布等待与自动验收 * fix: 修复多环境插件部署前缀与代理配置不一致 * fix: 修复测试
95 lines
3.6 KiB
YAML
95 lines
3.6 KiB
YAML
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
|