88 - ' tests/**'
99 - ' pyproject.toml'
1010 - ' setup.py'
11+ - ' deploy/Dockerfile'
1112 - ' .github/workflows/tests.yml'
1213 pull_request :
1314 branches : [main, master, dev, develop]
1617 - ' tests/**'
1718 - ' pyproject.toml'
1819 - ' setup.py'
20+ - ' deploy/Dockerfile'
1921 - ' .github/workflows/tests.yml'
2022 workflow_dispatch :
2123 inputs :
7779 steps :
7880 - uses : actions/checkout@v4
7981
82+ - name : Install Linux isolation dependency
83+ if : |
84+ runner.os == 'Linux' &&
85+ matrix.python-version == '3.11'
86+ shell : bash
87+ run : |
88+ sudo apt-get update
89+ sudo apt-get install -y bubblewrap
90+ if sysctl kernel.apparmor_restrict_unprivileged_userns \
91+ >/dev/null 2>&1; then
92+ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
93+ fi
94+
95+ - name : Set up Node.js (for console build)
96+ uses : actions/setup-node@v4
97+ with :
98+ node-version : ' 20'
99+ cache : ' npm'
100+ cache-dependency-path : console/package-lock.json
101+
102+ - name : Build console frontend
103+ shell : bash
104+ env :
105+ NODE_OPTIONS : " --max-old-space-size=8192"
106+ run : |
107+ cd console && npm ci && npm run build
108+
109+ - name : Copy console build into package
110+ shell : bash
111+ run : |
112+ rm -rf src/qwenpaw/console/*
113+ mkdir -p src/qwenpaw/console
114+ cp -R console/dist/* src/qwenpaw/console/
115+
80116 - name : Set up Python ${{ matrix.python-version }}
81117 uses : actions/setup-python@v5
82118 with :
@@ -86,14 +122,8 @@ jobs:
86122 - name : Install dependencies
87123 shell : bash
88124 run : |
89- # Slim install for the unit tier: unit tests neither serve the
90- # console frontend nor require the optional heavy extras
91- # (whisper/torch, codex, qoder). Optional-dependency tests are
92- # guarded with pytest.importorskip and still run in the nightly
93- # full sweep, which keeps the full extra. Keeping this job lean
94- # cuts the Windows matrix entry from tens of minutes to a few.
95125 python -m pip install --upgrade pip
96- pip install -e ".[dev,test]"
126+ pip install -e ".[dev,test,full ]"
97127
98128 - name : Run unit tests
99129 shell : bash
@@ -112,6 +142,15 @@ jobs:
112142 pytest tests/unit -v
113143 fi
114144
145+ - name : Run Hub Local runtime E2E
146+ if : matrix.python-version == '3.11'
147+ shell : bash
148+ env :
149+ QWENPAW_LOCAL_RUNTIME_E2E : ' 1'
150+ run : |
151+ python -m pip install --no-deps --force-reinstall .
152+ pytest tests/e2e/test_hub_local_runtime.py -v
153+
115154 - name : Upload unit coverage data
116155 if : |
117156 matrix.os == 'ubuntu-latest' &&
0 commit comments