@@ -77,10 +77,31 @@ jobs:
7777 run : uv sync --all-extras --python ${{ matrix.python-version }}
7878
7979 - name : Run tests
80- if : steps.check.outputs.skip != 'true'
80+ if : steps.check.outputs.skip != 'true' && !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13')
8181 working-directory : packages/uipath-llamaindex
8282 run : uv run pytest
8383
84+ - name : Run tests with coverage
85+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
86+ working-directory : packages/uipath-llamaindex
87+ run : uv run pytest --cov-report=xml --cov-report=html --tb=short
88+
89+ - name : Upload coverage HTML report
90+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
91+ uses : actions/upload-artifact@v4
92+ with :
93+ name : coverage-html-uipath-llamaindex
94+ path : packages/uipath-llamaindex/htmlcov/
95+ retention-days : 30
96+
97+ - name : Upload coverage XML report
98+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
99+ uses : actions/upload-artifact@v4
100+ with :
101+ name : coverage-xml-uipath-llamaindex
102+ path : packages/uipath-llamaindex/coverage.xml
103+ retention-days : 30
104+
84105 test-openai-agents :
85106 name : Test (uipath-openai-agents, ${{ matrix.python-version }}, ${{ matrix.os }})
86107 needs : detect-changed-packages
@@ -126,10 +147,31 @@ jobs:
126147 run : uv sync --all-extras --python ${{ matrix.python-version }}
127148
128149 - name : Run tests
129- if : steps.check.outputs.skip != 'true'
150+ if : steps.check.outputs.skip != 'true' && !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13')
130151 working-directory : packages/uipath-openai-agents
131152 run : uv run pytest
132153
154+ - name : Run tests with coverage
155+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
156+ working-directory : packages/uipath-openai-agents
157+ run : uv run pytest --cov-report=xml --cov-report=html --tb=short
158+
159+ - name : Upload coverage HTML report
160+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
161+ uses : actions/upload-artifact@v4
162+ with :
163+ name : coverage-html-uipath-openai-agents
164+ path : packages/uipath-openai-agents/htmlcov/
165+ retention-days : 30
166+
167+ - name : Upload coverage XML report
168+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
169+ uses : actions/upload-artifact@v4
170+ with :
171+ name : coverage-xml-uipath-openai-agents
172+ path : packages/uipath-openai-agents/coverage.xml
173+ retention-days : 30
174+
133175 test-google-adk :
134176 name : Test (uipath-google-adk, ${{ matrix.python-version }}, ${{ matrix.os }})
135177 needs : detect-changed-packages
@@ -175,10 +217,31 @@ jobs:
175217 run : uv sync --all-extras --python ${{ matrix.python-version }}
176218
177219 - name : Run tests
178- if : steps.check.outputs.skip != 'true'
220+ if : steps.check.outputs.skip != 'true' && !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13')
179221 working-directory : packages/uipath-google-adk
180222 run : uv run pytest
181223
224+ - name : Run tests with coverage
225+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
226+ working-directory : packages/uipath-google-adk
227+ run : uv run pytest --cov-report=xml --cov-report=html --tb=short
228+
229+ - name : Upload coverage HTML report
230+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
231+ uses : actions/upload-artifact@v4
232+ with :
233+ name : coverage-html-uipath-google-adk
234+ path : packages/uipath-google-adk/htmlcov/
235+ retention-days : 30
236+
237+ - name : Upload coverage XML report
238+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
239+ uses : actions/upload-artifact@v4
240+ with :
241+ name : coverage-xml-uipath-google-adk
242+ path : packages/uipath-google-adk/coverage.xml
243+ retention-days : 30
244+
182245 test-pydantic-ai :
183246 name : Test (uipath-pydantic-ai, ${{ matrix.python-version }}, ${{ matrix.os }})
184247 needs : detect-changed-packages
@@ -224,10 +287,31 @@ jobs:
224287 run : uv sync --all-extras --python ${{ matrix.python-version }}
225288
226289 - name : Run tests
227- if : steps.check.outputs.skip != 'true'
290+ if : steps.check.outputs.skip != 'true' && !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13')
228291 working-directory : packages/uipath-pydantic-ai
229292 run : uv run pytest
230293
294+ - name : Run tests with coverage
295+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
296+ working-directory : packages/uipath-pydantic-ai
297+ run : uv run pytest --cov-report=xml --cov-report=html --tb=short
298+
299+ - name : Upload coverage HTML report
300+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
301+ uses : actions/upload-artifact@v4
302+ with :
303+ name : coverage-html-uipath-pydantic-ai
304+ path : packages/uipath-pydantic-ai/htmlcov/
305+ retention-days : 30
306+
307+ - name : Upload coverage XML report
308+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
309+ uses : actions/upload-artifact@v4
310+ with :
311+ name : coverage-xml-uipath-pydantic-ai
312+ path : packages/uipath-pydantic-ai/coverage.xml
313+ retention-days : 30
314+
231315 test-agent-framework :
232316 name : Test (uipath-agent-framework, ${{ matrix.python-version }}, ${{ matrix.os }})
233317 needs : detect-changed-packages
@@ -273,6 +357,78 @@ jobs:
273357 run : uv sync --all-extras --python ${{ matrix.python-version }}
274358
275359 - name : Run tests
276- if : steps.check.outputs.skip != 'true'
360+ if : steps.check.outputs.skip != 'true' && !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13')
277361 working-directory : packages/uipath-agent-framework
278362 run : uv run pytest
363+
364+ - name : Run tests with coverage
365+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
366+ working-directory : packages/uipath-agent-framework
367+ run : uv run pytest --cov-report=xml --cov-report=html --tb=short
368+
369+ - name : Upload coverage HTML report
370+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
371+ uses : actions/upload-artifact@v4
372+ with :
373+ name : coverage-html-uipath-agent-framework
374+ path : packages/uipath-agent-framework/htmlcov/
375+ retention-days : 30
376+
377+ - name : Upload coverage XML report
378+ if : steps.check.outputs.skip != 'true' && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && always()
379+ uses : actions/upload-artifact@v4
380+ with :
381+ name : coverage-xml-uipath-agent-framework
382+ path : packages/uipath-agent-framework/coverage.xml
383+ retention-days : 30
384+
385+ sonarcloud :
386+ name : SonarCloud
387+ needs : [test-llamaindex, test-openai-agents, test-google-adk, test-pydantic-ai, test-agent-framework]
388+ runs-on : ubuntu-latest
389+ if : github.event_name == 'pull_request' && always() && needs.test-llamaindex.result != 'failure' && needs.test-openai-agents.result != 'failure' && needs.test-google-adk.result != 'failure' && needs.test-pydantic-ai.result != 'failure' && needs.test-agent-framework.result != 'failure'
390+ steps :
391+ - name : Checkout
392+ uses : actions/checkout@v4
393+ with :
394+ fetch-depth : 0
395+
396+ - name : Download uipath-llamaindex coverage
397+ uses : actions/download-artifact@v4
398+ continue-on-error : true
399+ with :
400+ name : coverage-xml-uipath-llamaindex
401+ path : packages/uipath-llamaindex
402+
403+ - name : Download uipath-openai-agents coverage
404+ uses : actions/download-artifact@v4
405+ continue-on-error : true
406+ with :
407+ name : coverage-xml-uipath-openai-agents
408+ path : packages/uipath-openai-agents
409+
410+ - name : Download uipath-google-adk coverage
411+ uses : actions/download-artifact@v4
412+ continue-on-error : true
413+ with :
414+ name : coverage-xml-uipath-google-adk
415+ path : packages/uipath-google-adk
416+
417+ - name : Download uipath-pydantic-ai coverage
418+ uses : actions/download-artifact@v4
419+ continue-on-error : true
420+ with :
421+ name : coverage-xml-uipath-pydantic-ai
422+ path : packages/uipath-pydantic-ai
423+
424+ - name : Download uipath-agent-framework coverage
425+ uses : actions/download-artifact@v4
426+ continue-on-error : true
427+ with :
428+ name : coverage-xml-uipath-agent-framework
429+ path : packages/uipath-agent-framework
430+
431+ - name : SonarCloud Scan
432+ uses : SonarSource/sonarqube-scan-action@2f77a1ec69fb1d595b06f35ab27e97605bdef703 # v5
433+ env :
434+ SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
0 commit comments