Skip to content

Commit c8079d1

Browse files
committed
Added experimental workflow to run flow tests on windows
1 parent 5f5c3af commit c8079d1

1 file changed

Lines changed: 163 additions & 0 deletions

File tree

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
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

Comments
 (0)