Repository navigation
88 lines (78 loc) · 2.97 KB
/
Copy pathwindows-validation.yml
File metadata and controls
88 lines (78 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: Windows CLI Validation
on:
workflow_dispatch:
inputs:
fixture_files:
description: Files per generated concurrency fixture
required: false
default: "180"
type: string
permissions:
contents: read
jobs:
validate-windows-x64:
name: Native Windows x64 validation (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
runs-on: ${{ matrix.os }}
timeout-minutes: 240
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2
with:
msystem: CLANG64
path-type: inherit
install: >-
mingw-w64-clang-x86_64-clang
mingw-w64-clang-x86_64-zlib
mingw-w64-clang-x86_64-python3
make
git
coreutils
zip
- name: Build native production CLI
shell: msys2 {0}
run: scripts/build.sh --with-ui CC=clang CXX=clang++
- name: Verify Windows executable exists
shell: msys2 {0}
run: |
test -s build/c/codebase-memory-cli.exe
build/c/codebase-memory-cli.exe --version
build/c/codebase-memory-cli.exe --help >/dev/null
- name: Run CLI smoke invariants
shell: msys2 {0}
run: |
chmod +x scripts/smoke-invariants.sh
scripts/smoke-invariants.sh build/c/codebase-memory-cli.exe
- name: Run native Windows validation and concurrency evidence
shell: msys2 {0}
env:
PYTHONUTF8: "1"
run: |
mkdir -p validation-evidence
python scripts/evaluate-windows-validation.py \
--binary build/c/codebase-memory-cli.exe \
--output "validation-evidence/windows-validation-${{ matrix.os }}.json" \
--concurrency-output "validation-evidence/concurrency-${{ matrix.os }}.json" \
--fixture-files "${{ inputs.fixture_files }}"
- name: Package validation candidate
if: always()
shell: msys2 {0}
run: |
mkdir -p validation-package
cp build/c/codebase-memory-cli.exe validation-package/ 2>/dev/null || true
cp THIRD_PARTY.md validation-package/ 2>/dev/null || true
cp README.md validation-package/ 2>/dev/null || true
cp validation-evidence/*.json validation-package/ 2>/dev/null || true
(cd validation-package && zip -9 -r "../codebase-memory-cli-windows-x64-${{ matrix.os }}-validation.zip" .)
- name: Upload Windows validation candidate and evidence
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: codebase-memory-cli-windows-x64-${{ matrix.os }}-validation
path: |
codebase-memory-cli-windows-x64-${{ matrix.os }}-validation.zip
validation-evidence/*.json
if-no-files-found: error