1+ name : Test Suite Windows
2+
3+ on :
4+ pull_request :
5+ paths :
6+ - ' .github/workflows/**'
7+ - ' src/adapter/**'
8+ - ' src/bridge/**'
9+ - ' src/core/**'
10+ - ' src/cli/**'
11+ - ' src/lib/**'
12+ - ' tools/**'
13+ - ' examples/**'
14+ - ' composer.lock'
15+ push :
16+ branches : [ 1.x ]
17+ paths-ignore :
18+ - ' CHANGELOG.md'
19+
20+ # See https://stackoverflow.com/a/72408109
21+ concurrency :
22+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
23+ cancel-in-progress : true
24+
25+ jobs :
26+ tests-windows :
27+ name : " Windows Tests (Experimental)"
28+ runs-on : windows-latest
29+ timeout-minutes : 20
30+ continue-on-error : true # Allow failures for Windows tests
31+
32+ strategy :
33+ fail-fast : false
34+ matrix :
35+ dependencies :
36+ - " locked" # Only locked dependencies for Windows
37+ php-version :
38+ - " 8.2"
39+ - " 8.3"
40+ - " 8.4"
41+
42+ steps :
43+ - name : " Checkout"
44+ uses : " actions/checkout@v5"
45+
46+ - name : " Install PHP"
47+ uses : " shivammathur/setup-php@v2"
48+ with :
49+ tools : composer:v2
50+ php-version : " ${{ matrix.php-version }}"
51+ ini-values : memory_limit=-1, post_max_size=32M, upload_max_filesize=32M
52+ extensions : :psr, bcmath, dom, hash, json, mbstring, xml, xmlwriter, xmlreader, zlib, curl
53+
54+ - name : " List PHP Extensions"
55+ run : php -m
56+
57+ - name : " List PHP configuration"
58+ run : php -i
59+
60+ - name : " Get Composer Cache Directory"
61+ id : composer-cache
62+ run : |
63+ echo "dir=$(composer config cache-files-dir)" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
64+
65+ - name : " Cache Composer dependencies"
66+ uses : " actions/cache@v4"
67+ with :
68+ path : " ${{ steps.composer-cache.outputs.dir }}"
69+ key : " php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-windows-${{ hashFiles('**/composer.lock') }}"
70+ restore-keys : |
71+ php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-windows-
72+
73+ - name : " Install locked dependencies"
74+ run : " composer install --no-interaction --no-progress"
75+
76+ - name : " Test - ETL Core"
77+ run : " composer test:core"
78+ continue-on-error : true
79+
80+ - name : " Test - CLI"
81+ run : " composer test:cli"
82+ continue-on-error : true
83+
84+ - name : " Test - Lib - Array Dot"
85+ run : " composer test:lib:array-dot"
86+ continue-on-error : true
87+
88+ - name : " Test - Lib - Azure SDK"
89+ run : " composer test:lib:azure-sdk"
90+ continue-on-error : true
91+
92+ - name : " Test - Lib - Doctrine DBAL Bulk"
93+ run : " composer test:lib:doctrine-dbal-bulk"
94+ continue-on-error : true
95+
96+ - name : " Test - Lib - Filesystem (Critical for Windows)"
97+ run : " composer test:lib:filesystem"
98+ continue-on-error : false # This should pass on Windows now
99+
100+ - name : " Test - Lib - Types"
101+ run : " composer test:lib:types"
102+ continue-on-error : true
103+
104+ - name : " Test - Lib - Parquet"
105+ run : " composer test:lib:parquet"
106+ continue-on-error : true
107+ env :
108+ FLOW_PARQUET_TESTS_DEBUG : " 0"
109+
110+ - name : " Test - Lib - Parquet Viewer"
111+ run : " composer test:lib:parquet-viewer"
112+ continue-on-error : true
113+
114+ - name : " Test - Lib - Snappy"
115+ run : " composer test:lib:snappy"
116+ continue-on-error : true
117+
118+ - name : " Test - Adapter - ChartJs"
119+ run : " composer test:adapter:chartjs"
120+ continue-on-error : true
121+
122+ - name : " Test - Adapter - CSV"
123+ run : " composer test:adapter:csv"
124+ continue-on-error : true
125+
126+ - name : " Test - Adapter - Excel"
127+ run : " composer test:adapter:excel"
128+ continue-on-error : true
129+
130+ - name : " Test - Adapter - Google Sheet"
131+ run : " composer test:adapter:google-sheet"
132+ continue-on-error : true
133+
134+ - name : " Test - Adapter - Http"
135+ run : " composer test:adapter:http"
136+ continue-on-error : true
137+
138+ - name : " Test - Adapter - Json"
139+ run : " composer test:adapter:json"
140+ continue-on-error : true
141+
142+ - name : " Test - Adapter - Logger"
143+ run : " composer test:adapter:logger"
144+ continue-on-error : true
145+
146+ - name : " Test - Adapter - Parquet"
147+ run : " composer test:adapter:parquet"
148+ continue-on-error : true
149+
150+ - name : " Test - Adapter - Text"
151+ run : " composer test:adapter:text"
152+ continue-on-error : true
153+
154+ - name : " Test - Adapter - XML"
155+ run : " composer test:adapter:xml"
156+ continue-on-error : true
157+
158+ - name : " Windows Test Summary"
159+ if : always()
160+ run : |
161+ echo "Windows test run completed for PHP ${{ matrix.php-version }}"
162+ echo "Note: Some test failures are expected on Windows as this is experimental"
163+ echo "Critical filesystem tests should pass with the new Windows support implementation"
0 commit comments