ci: preserve IDE workflow line endings
Server CI and Windows package / verify (push) Successful in 7m18s
Server CI and Windows package / windows-package (push) Successful in 18m51s

This commit is contained in:
yilsem committed 2026-10-20 17:45:33 +03:00
1 parent fb62f31be3
commit 21a8f3b8e9
1 file changed
+102 -102
+102 -102
View File
@@ -1,102 +1,102 @@
name: Server CI and Windows package name: Server CI and Windows package
on: on:
push: push:
branches: [aiturk/main, fix/ide-windows-vcruntime] branches: [aiturk/main, fix/ide-windows-vcruntime]
workflow_dispatch: workflow_dispatch:
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
permissions: permissions:
contents: read contents: read
jobs: jobs:
verify: verify:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 40 timeout-minutes: 40
env: env:
NODE_OPTIONS: --max-old-space-size=2560 NODE_OPTIONS: --max-old-space-size=2560
PYTHONDONTWRITEBYTECODE: '1' PYTHONDONTWRITEBYTECODE: '1'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
github-server-url: https://gitea.turkservis.online github-server-url: https://gitea.turkservis.online
- name: Exact source and Linux test environment - name: Exact source and Linux test environment
run: | run: |
set -eu set -eu
test "$(git rev-parse HEAD)" = "$GITHUB_SHA" test "$(git rev-parse HEAD)" = "$GITHUB_SHA"
apt-get update apt-get update
apt-get install -y --no-install-recommends ripgrep apt-get install -y --no-install-recommends ripgrep
rg --version rg --version
python3 -m venv "$RUNNER_TEMP/bootstrap" python3 -m venv "$RUNNER_TEMP/bootstrap"
"$RUNNER_TEMP/bootstrap/bin/pip" install uv "$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" 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 "$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 - name: Approval gate and file safety on the server
run: | 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 "$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 - name: Codex bridge regression tests
run: '"$RUNNER_TEMP/ci-venv/bin/python" -m unittest discover -s apps/desktop/assets/codex-bridge' run: '"$RUNNER_TEMP/ci-venv/bin/python" -m unittest discover -s apps/desktop/assets/codex-bridge'
- name: Managed Python update preservation - name: Managed Python update preservation
run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/test_install_ps1_reuse_healthy_venv.py tests/test_install_ps1_python_fallback_venv.py -q -p no:cacheprovider -rf' run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/test_install_ps1_reuse_healthy_venv.py tests/test_install_ps1_python_fallback_venv.py -q -p no:cacheprovider -rf'
- name: Project scoped and bounded search regressions - name: Project scoped and bounded search regressions
run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/tools/test_search_project_scope.py tests/tools/test_search_files_cpu_windows.py tests/tools/test_search_zero_match_and_multipath.py tests/tools/test_search_giant_line_containment.py tests/tools/test_search_budget_truncation.py -q -p no:cacheprovider -rf' run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/tools/test_search_project_scope.py tests/tools/test_search_files_cpu_windows.py tests/tools/test_search_zero_match_and_multipath.py tests/tools/test_search_giant_line_containment.py tests/tools/test_search_budget_truncation.py -q -p no:cacheprovider -rf'
- name: Desktop browser control lane (AITURK Chrome) - name: Desktop browser control lane (AITURK Chrome)
run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/gateway/test_browser_control_local_lane.py tests/gateway/test_browser_control_broker.py tests/gateway/test_browser_control_broker_hardening.py tests/gateway/test_browser_control_cloud.py tests/tools/test_browser_extension_router.py tests/tools/test_browser_extension_router_wiring.py -q -p no:cacheprovider -rf' run: '"$RUNNER_TEMP/ci-venv/bin/python" -m pytest tests/gateway/test_browser_control_local_lane.py tests/gateway/test_browser_control_broker.py tests/gateway/test_browser_control_broker_hardening.py tests/gateway/test_browser_control_cloud.py tests/tools/test_browser_extension_router.py tests/tools/test_browser_extension_router_wiring.py -q -p no:cacheprovider -rf'
- name: Native watch and speech mux pytest regressions - 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 apps/desktop/assets/codex-bridge/test_live_limits.py -q -p no:cacheprovider -rf' 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 apps/desktop/assets/codex-bridge/test_live_limits.py -q -p no:cacheprovider -rf'
- name: Mobile and desktop startup regression tests - name: Mobile and desktop startup regression tests
run: | 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 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 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 node node_modules/vitest/vitest.mjs run --root apps/desktop --config vitest.mobile.config.ts --maxWorkers=2
windows-package: windows-package:
if: github.ref == 'refs/heads/fix/ide-windows-vcruntime' if: github.ref == 'refs/heads/fix/ide-windows-vcruntime'
needs: verify needs: verify
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
timeout-minutes: 60 timeout-minutes: 60
# Windows packaging runs on Linux/Wine in the new server. No laptop runner. # Windows packaging runs on Linux/Wine in the new server. No laptop runner.
container: electronuserland/builder@sha256:b226b27b1a7e95ad25eb3d6414ea90c56c04eb6d8329967f4d721dce50b989ff container: electronuserland/builder@sha256:b226b27b1a7e95ad25eb3d6414ea90c56c04eb6d8329967f4d721dce50b989ff
env: env:
NODE_OPTIONS: --max-old-space-size=2560 NODE_OPTIONS: --max-old-space-size=2560
CSC_IDENTITY_AUTO_DISCOVERY: 'false' CSC_IDENTITY_AUTO_DISCOVERY: 'false'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
github-server-url: https://gitea.turkservis.online github-server-url: https://gitea.turkservis.online
- name: Install locked source dependencies - name: Install locked source dependencies
run: npm ci --no-audit --no-fund run: npm ci --no-audit --no-fund
- name: Chrome extension, agent control and bridge tests - name: Chrome extension, agent control and bridge tests
run: node --test apps/chrome/tests/agent.test.mjs apps/chrome/tests/bridge.test.mjs apps/chrome/tests/panel.test.mjs run: node --test apps/chrome/tests/agent.test.mjs apps/chrome/tests/bridge.test.mjs apps/chrome/tests/panel.test.mjs
- name: Install Windows launcher cross compiler and framework reference - name: Install Windows launcher cross compiler and framework reference
run: | run: |
set -eu set -eu
apt-get update 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 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 - name: Compile Windows launcher from source and verify failure gate
run: node --test apps/desktop/scripts/build-native-watch-launcher.test.mjs run: node --test apps/desktop/scripts/build-native-watch-launcher.test.mjs
- name: Native dependency staging regression tests - name: Native dependency staging regression tests
run: npx vitest run --root apps/desktop scripts/stage-native-deps.test.mjs --maxWorkers=2 run: npx vitest run --root apps/desktop scripts/stage-native-deps.test.mjs --maxWorkers=2
- name: Codex connection settings regression tests - 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 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 - name: Build and package Windows x64
run: | run: |
set -eu set -eu
test "$(git rev-parse HEAD)" = "$GITHUB_SHA" test "$(git rev-parse HEAD)" = "$GITHUB_SHA"
npm run build --workspace=apps/desktop npm run build --workspace=apps/desktop
npm run builder --workspace=apps/desktop -- --win nsis zip --x64 --publish never npm run builder --workspace=apps/desktop -- --win nsis zip --x64 --publish never
git diff --exit-code git diff --exit-code
cd apps/desktop/release cd apps/desktop/release
sha256sum *.exe *.zip > SHA256SUMS sha256sum *.exe *.zip > SHA256SUMS
- name: Preserve exact-source Windows package - name: Preserve exact-source Windows package
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: aiturk-ide-windows-${{ github.sha }} name: aiturk-ide-windows-${{ github.sha }}
if-no-files-found: error if-no-files-found: error
path: | path: |
apps/desktop/release/*.exe apps/desktop/release/*.exe
apps/desktop/release/*.zip apps/desktop/release/*.zip
apps/desktop/release/SHA256SUMS apps/desktop/release/SHA256SUMS