From 21a8f3b8e986ce8d0a2c3c2f57537f7f10915fb9 Mon Sep 17 00:00:00 2001 From: yilsem Date: Tue, 20 Oct 2026 17:45:33 +0300 Subject: [PATCH] ci: preserve IDE workflow line endings --- .gitea/workflows/ci.yml | 204 ++++++++++++++++++++-------------------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index b864a26..dc1ce7f 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -1,102 +1,102 @@ -name: Server CI and Windows package - -on: - push: - branches: [aiturk/main, fix/ide-windows-vcruntime] - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -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" - apt-get update - apt-get install -y --no-install-recommends ripgrep - rg --version - 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: 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' - - 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' - - 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' - - 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' - - 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: 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 - - 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 +name: Server CI and Windows package + +on: + push: + branches: [aiturk/main, fix/ide-windows-vcruntime] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +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" + apt-get update + apt-get install -y --no-install-recommends ripgrep + rg --version + 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: 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' + - 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' + - 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' + - 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' + - 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: 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 + - 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