Separate encrypted reasoning from actual compaction, stop migration after native return, and retain full history and recent exchanges. Add typed settings, Gemini fallback, verified provider windows, bounded summaries and durable concurrent checkpoints. Validation: 245 bridge tests plus focused concurrency tests; 71 settings/connection tests; 66 supplementary tests; TypeScript checks; renderer and Electron bundles; real primary/native/fallback summary probes and 700K input acceptance.
88 lines
4.3 KiB
YAML
88 lines
4.3 KiB
YAML
name: Server CI and Windows package
|
|
|
|
on:
|
|
push:
|
|
branches: [aiturk/main, fix/ide-windows-vcruntime]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
verify:
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 40
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=2560
|
|
PYTHONDONTWRITEBYTECODE: '1'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
github-server-url: https://gitea.turkservis.online
|
|
- name: Exact source and Linux test environment
|
|
run: |
|
|
set -eu
|
|
test "$(git rev-parse HEAD)" = "$GITHUB_SHA"
|
|
python3 -m venv "$RUNNER_TEMP/bootstrap"
|
|
"$RUNNER_TEMP/bootstrap/bin/pip" install uv
|
|
"$RUNNER_TEMP/bootstrap/bin/uv" venv --python 3.11 "$RUNNER_TEMP/ci-venv"
|
|
"$RUNNER_TEMP/bootstrap/bin/uv" pip install --python "$RUNNER_TEMP/ci-venv/bin/python" -e . pytest zstandard
|
|
- name: Approval gate and file safety on the server
|
|
run: |
|
|
"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/tools/test_protected_instruction_unattended.py tests/tools/test_file_write_safety.py tests/tools/test_computer_use_approval_isolation.py tests/cli/test_cli_approval_ui.py tests/cli/test_single_query_session_finalize.py -q -p no:cacheprovider -rf
|
|
- name: Codex bridge regression tests
|
|
run: '"$RUNNER_TEMP/ci-venv/bin/python" -m unittest discover -s apps/desktop/assets/codex-bridge'
|
|
- name: Native watch and speech mux pytest regressions
|
|
run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest apps/desktop/assets/codex-bridge/test_bekci_watch.py apps/desktop/assets/codex-bridge/test_native_speech_mux.py -q -p no:cacheprovider -rf'
|
|
- name: Mobile and desktop startup regression tests
|
|
run: |
|
|
npm install --prefix "$RUNNER_TEMP/mobile-tests" --no-save --ignore-scripts --no-audit --no-fund --legacy-peer-deps vitest@4.1.10 ws@8.21.1
|
|
ln -s "$RUNNER_TEMP/mobile-tests/node_modules" node_modules
|
|
node node_modules/vitest/vitest.mjs run --root apps/desktop --config vitest.mobile.config.ts --maxWorkers=2
|
|
|
|
windows-package:
|
|
if: github.ref == 'refs/heads/fix/ide-windows-vcruntime'
|
|
needs: verify
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 60
|
|
# Windows packaging runs on Linux/Wine in the new server. No laptop runner.
|
|
container: electronuserland/builder@sha256:b226b27b1a7e95ad25eb3d6414ea90c56c04eb6d8329967f4d721dce50b989ff
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=2560
|
|
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
github-server-url: https://gitea.turkservis.online
|
|
- name: Install locked source dependencies
|
|
run: npm ci --no-audit --no-fund
|
|
- name: Install Windows launcher cross compiler and framework reference
|
|
run: |
|
|
set -eu
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends mono-mcs=6.8.0.105+dfsg-3.2 libmono-system-web-extensions4.0-cil=6.8.0.105+dfsg-3.2
|
|
- name: Compile Windows launcher from source and verify failure gate
|
|
run: node --test apps/desktop/scripts/build-native-watch-launcher.test.mjs
|
|
- name: Native dependency staging regression tests
|
|
run: npx vitest run --root apps/desktop scripts/stage-native-deps.test.mjs --maxWorkers=2
|
|
- name: Codex connection settings regression tests
|
|
run: npx vitest run --root apps/desktop electron/codex-link.test.ts electron/codex-link-config.test.ts electron/staged-transition.test.ts electron/compression-settings.test.ts src/app/settings/codex-link-settings.test.tsx src/app/settings/staged-transition-settings.test.tsx src/app/settings/compression-settings.test.tsx --maxWorkers=2
|
|
- name: Build and package Windows x64
|
|
run: |
|
|
set -eu
|
|
test "$(git rev-parse HEAD)" = "$GITHUB_SHA"
|
|
npm run build --workspace=apps/desktop
|
|
npm run builder --workspace=apps/desktop -- --win nsis zip --x64 --publish never
|
|
git diff --exit-code
|
|
cd apps/desktop/release
|
|
sha256sum *.exe *.zip > SHA256SUMS
|
|
- name: Preserve exact-source Windows package
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: aiturk-ide-windows-${{ github.sha }}
|
|
if-no-files-found: error
|
|
path: |
|
|
apps/desktop/release/*.exe
|
|
apps/desktop/release/*.zip
|
|
apps/desktop/release/SHA256SUMS
|