4848 - name : Setup Test Env
4949 run : |
5050 uv sync
51- - name : Erase coverage
52- run : |
53- uv run coverage erase
5451 - name : Test langchain-base
5552 run : |
5653 set -x # print commands that are executed
@@ -63,18 +60,45 @@ jobs:
6360 run : |
6461 set -x # print commands that are executed
6562 ./scripts/runtox.sh "py${{ matrix.python-version }}-langgraph"
66- - name : Generate coverage XML
63+ - name : Upload coverage data
6764 if : ${{ !cancelled() }}
65+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
66+ with :
67+ name : coverage-ai_workflow-${{ matrix.python-version }}
68+ # .coverage-* / .junitxml-* are dotfiles, excluded by default
69+ include-hidden-files : true
70+ path : |
71+ .coverage-sentry-*
72+ .junitxml-*
73+ if-no-files-found : ' ignore'
74+ retention-days : 1
75+ upload-coverage-ai_workflow :
76+ name : Upload AI Workflow coverage
77+ needs : test-ai_workflow
78+ # Run even if some test jobs failed, to report partial coverage
79+ if : ${{ !cancelled() }}
80+ runs-on : ubuntu-22.04
81+ steps :
82+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
83+ - name : Install uv
84+ uses : astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
85+ - name : Download coverage data
86+ uses : actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
87+ with :
88+ pattern : coverage-ai_workflow-*
89+ merge-multiple : true
90+ - name : Combine coverage and generate XML
6891 run : |
92+ uv sync
6993 uv run coverage combine .coverage-sentry-*
7094 uv run coverage xml
7195 - name : Parse and Upload Coverage
72- if : ${{ !cancelled() }}
7396 uses : getsentry/codecov-action@d90e69cdf071dfbb0430159125321dc09c424d4c # main
7497 with :
7598 token : ${{ secrets.GITHUB_TOKEN }}
7699 files : coverage.xml
77- junit-xml-pattern : .junitxml
100+ flags : ai_workflow
101+ junit-xml-pattern : .junitxml-*
78102 base-branch : master
79103 verbose : true
80104 check_required_tests :
0 commit comments