name: Plugin Network Smoke on: pull_request: branches: [master] paths: - 'ruoyi-fastapi-backend/plugins/**' - 'ruoyi-fastapi-backend/module_plugin/**' - 'ruoyi-fastapi-backend/module_admin/service/login_service.py' - 'ruoyi-fastapi-backend/common/**' - 'ruoyi-fastapi-backend/config/**' - 'ruoyi-fastapi-backend/middlewares/**' - 'ruoyi-fastapi-backend/utils/**' - 'ruoyi-fastapi-backend/tests/**' - 'ruoyi-fastapi-backend/requirements.txt' - 'ruoyi-fastapi-backend/pyproject.toml' - 'ruoyi-fastapi-frontend/**' - '.github/workflows/plugin-network-smoke.yml' workflow_dispatch: permissions: contents: read jobs: browser: runs-on: ubuntu-latest timeout-minutes: 15 defaults: run: working-directory: ruoyi-fastapi-backend env: RUOYI_PLUGIN_NETWORK_SMOKE: '1' # The fixture replaces account, DB and Redis access; no external service is used. DB_SOURCES: '{"primary":{"db_type":"mysql","db_host":"127.0.0.1","db_port":3306,"db_username":"network-smoke","db_password":"network-smoke","db_database":"network-smoke"}}' JWT_SECRET_KEY: 'isolated-plugin-network-smoke-ci-only' steps: - uses: actions/checkout@v5 - uses: actions/setup-python@v6 with: python-version: '3.12' cache: pip cache-dependency-path: ruoyi-fastapi-backend/requirements.txt - uses: actions/setup-node@v6 with: node-version: '22' cache: npm cache-dependency-path: ruoyi-fastapi-frontend/package.json - name: Install host and browser test dependencies run: python -m pip install -r requirements.txt pytest pytest-asyncio aiosqlite playwright - name: Install Chromium run: python -m playwright install --with-deps chromium - name: Install frontend dependencies # This repository does not commit npm lockfiles, so npm ci is not available. run: npm --prefix ../ruoyi-fastapi-frontend install --no-audit --no-fund --package-lock=false - name: Verify HTTPS proxy, iframe sessions and long connections run: python -m pytest tests/plugins/integration/test_network_smoke.py -v --junitxml=target/plugin-network-smoke/results.xml - name: Upload browser trace, screenshots and proxy log if: always() uses: actions/upload-artifact@v4 with: name: plugin-network-smoke path: ruoyi-fastapi-backend/target/plugin-network-smoke/ retention-days: 7