@@ -173,6 +173,66 @@ jobs:
173
173
# # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv RUNNING ON SELF-HOSTED RUNNER vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
174
174
# # =================================================================================================
175
175
176
+ test-windows :
177
+ name : Testing and coverage (Windows)
178
+ needs : [smoke-tests]
179
+ runs-on : runs-on: [ self-hosted, Windows, pyaedt ]
180
+ # Steps represent a sequence of tasks that will be executed as part of the job
181
+ steps :
182
+ - name : Install Git and checkout project
183
+ uses : actions/checkout@v4
184
+
185
+ - name : Setup Python
186
+ uses : actions/setup-python@v5
187
+ with :
188
+ python-version : ${{ env.MAIN_PYTHON_VERSION }}
189
+
190
+ - name : Create virtual environment
191
+ run : |
192
+ python -m venv .venv
193
+ .venv\Scripts\Activate.ps1
194
+ python -m pip install pip -U
195
+ python -m pip install wheel setuptools -U
196
+ python -c "import sys; print(sys.executable)"
197
+
198
+ - name : Install pyaedt and tests dependencies
199
+ run : |
200
+ .venv\Scripts\Activate.ps1
201
+ pip install .[tests]
202
+
203
+ - name : Install CI dependencies (e.g. vtk-osmesa)
204
+ run : |
205
+ .venv\Scripts\Activate.ps1
206
+ # Uninstall conflicting dependencies
207
+ pip uninstall vtk -y
208
+ pip install --extra-index-url https://wheels.vtk.org .[ci]
209
+
210
+ - name : ' Unit testing'
211
+ uses : nick-fields/retry@v3
212
+ with :
213
+ max_attempts : 3
214
+ retry_on : error
215
+ timeout_minutes : 40
216
+ command : |
217
+ .venv\Scripts\Activate.ps1
218
+ Set-Item -Path env:PYTHONMALLOC -Value "malloc"
219
+ pytest -n auto --dist loadfile --durations=50 -v --cov=pyaedt --cov-report=xml --cov-report=html --junitxml=junit/test-results.xml _unittest
220
+
221
+ - uses : codecov/codecov-action@v4
222
+ with :
223
+ token : ${{ secrets.CODECOV_TOKEN }}
224
+ name : codecov-system-tests
225
+ file : ./coverage.xml
226
+ flags : system
227
+
228
+ - name : Upload pytest test results
229
+ uses : actions/upload-artifact@v4
230
+ with :
231
+ name : pytest-results
232
+ path : junit/test-results.xml
233
+ # Use always() to always run this step to publish test results when there are test failures
234
+ if : ${{ always() }}
235
+
176
236
# legacy-tests:
177
237
# name: Test dotnet
178
238
# runs-on: [ Windows, self-hosted, pyedb ]
0 commit comments