This fork had no CI on Gitea (Actions was off; the upstream .github workflows do not run here). Add one job that runs the protected instruction-file gate tests and the file-write safety tests on the Windows runner. Seven upstream tests that cannot pass on Windows (POSIX paths, symlink privilege, POSIX stat) are deselected by name and listed in the job log. Kart: turkservis-20261007-1421-2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EwSpve9HuXMy7dHf4RDMzX
89 lines
4.2 KiB
YAML
89 lines
4.2 KiB
YAML
# AITURK IDE ajan CI (kart turkservis-20261007-1421-2).
|
|
#
|
|
# Bu depo bir yukari akis catalidir; .github/workflows altindaki GitHub is akislari Gitea'da kosmaz. .gitea/workflows
|
|
# klasoru var oldugu surece Gitea yalniz buradaki is akislarini okur.
|
|
#
|
|
# Ne kosar: korumali talimat dosyasi onay kapisinin testleri (insana sorulamayan kosuda aninda BLOCKED, gec onayin
|
|
# uygulanmamasi, yolo ile kapinin acilmamasi) ve dosya yazma guvenligi testleri. Kosucu Windows'tur (etiket
|
|
# windows-latest; 7 Ekim 2026'da cevrimici kosucu hermes-laptop-windows): urunun hedefi Windows x64'tur ve hata
|
|
# Windows asama kosusunda gorulmustur.
|
|
#
|
|
# Ne sayilmaz (durustluk notu): tests/tools/test_file_write_safety.py icindeki 7 test Windows'ta bu degisiklikten
|
|
# bagimsiz olarak gecemez; yukari akis bunlari POSIX icin yazmistir (/etc, /private/etc, /boot yollari; yonetici
|
|
# ayricaligi isteyen symlink; POSIX stat alanlari). Asagida adlariyla deselect edilir; degismemis 58dbb4523b
|
|
# commit'inde de ayni 7 test kaliyordu (7 Ekim 2026 olcumu). Tam yukari akis test takimi burada KOSMAZ.
|
|
name: ci
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- aiturk/main
|
|
- fix/ide-windows-vcruntime
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
approval-gate-windows:
|
|
runs-on: windows-latest
|
|
timeout-minutes: 40
|
|
steps:
|
|
- name: Kaynagi al
|
|
uses: actions/checkout@v4
|
|
with:
|
|
github-server-url: https://gitea.twinpay.one
|
|
|
|
- name: Ortami kur
|
|
shell: powershell
|
|
run: |
|
|
$ErrorActionPreference = 'Stop'
|
|
"kosucu: $env:COMPUTERNAME / $env:USERNAME"
|
|
"checkout SHA: $(git rev-parse HEAD) / beklenen: $env:GITHUB_SHA"
|
|
$py = $null
|
|
$launcher = Get-Command py -ErrorAction SilentlyContinue
|
|
if ($launcher) { $py = (& $launcher.Source -3 -c 'import sys; print(sys.executable)').Trim() }
|
|
if (-not $py) {
|
|
$cmd = Get-Command python -ErrorAction SilentlyContinue
|
|
if ($cmd -and $cmd.Source -notlike '*\WindowsApps\*') { $py = $cmd.Source }
|
|
}
|
|
if (-not $py) { throw 'Python bulunamadi' }
|
|
"onyukleme python: $py"
|
|
& $py -m pip install --quiet --disable-pip-version-check --target "$env:RUNNER_TEMP\uvboot" uv
|
|
if ($LASTEXITCODE -ne 0) { throw 'uv kurulamadi' }
|
|
$env:PYTHONPATH = "$env:RUNNER_TEMP\uvboot"
|
|
& $py -m uv venv --python 3.11 "$env:RUNNER_TEMP\ci-venv"
|
|
if ($LASTEXITCODE -ne 0) { throw 'venv olusturulamadi' }
|
|
& $py -m uv pip install --python "$env:RUNNER_TEMP\ci-venv\Scripts\python.exe" -e . pytest
|
|
if ($LASTEXITCODE -ne 0) { throw 'bagimliliklar kurulamadi' }
|
|
$env:PYTHONPATH = ''
|
|
& "$env:RUNNER_TEMP\ci-venv\Scripts\python.exe" --version
|
|
|
|
- name: Onay kapisi testleri
|
|
shell: powershell
|
|
run: |
|
|
$ErrorActionPreference = 'Continue'
|
|
$env:PYTHONDONTWRITEBYTECODE = '1'
|
|
$env:PYTHONUTF8 = '1'
|
|
$venv = "$env:RUNNER_TEMP\ci-venv\Scripts\python.exe"
|
|
$f = 'tests/tools/test_file_write_safety.py'
|
|
$sayilmayan = @(
|
|
"${f}::TestCheckSensitivePathMacOSBypass::test_etc_hosts_blocked",
|
|
"${f}::TestCheckSensitivePathMacOSBypass::test_private_etc_hosts_blocked",
|
|
"${f}::TestCheckSensitivePathMacOSBypass::test_private_etc_ssh_config_blocked",
|
|
"${f}::TestCheckSensitivePathMacOSBypass::test_private_var_blocked",
|
|
"${f}::TestCheckSensitivePathMacOSBypass::test_boot_still_blocked",
|
|
"${f}::TestAtomicWrite::test_patch_routes_through_atomic_write",
|
|
"${f}::TestProtectedInstructionFiles::test_symlink_to_protected_file_is_gated"
|
|
)
|
|
$deselect = @()
|
|
foreach ($t in $sayilmayan) { $deselect += '--deselect'; $deselect += $t }
|
|
"CI OZETI: Windows'ta sayilmayan (deselect) test sayisi: $($sayilmayan.Count)"
|
|
$sayilmayan | ForEach-Object { " sayilmadi: $_" }
|
|
& $venv -m pytest tests/tools/test_protected_instruction_unattended.py $f `
|
|
tests/tools/test_computer_use_approval_isolation.py tests/cli/test_cli_approval_ui.py `
|
|
tests/cli/test_single_query_session_finalize.py @deselect -q -p no:cacheprovider -rf
|
|
$kod = $LASTEXITCODE
|
|
"pytest cikis kodu: $kod"
|
|
exit $kod
|