Skip to content

Commit a8d550e

Browse files
committed
chore: added support for coverage report generation
- updated the github actions to generate the coveragre report per MCP server - updated the github actions to create a combined coverage report - added thresholds for individual servers for coverage
1 parent c36757f commit a8d550e

File tree

15 files changed

+111
-3
lines changed

15 files changed

+111
-3
lines changed

.github/workflows/build.yml

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@ jobs:
4141
working-directory: src/${{ matrix.directory }}
4242
run: uv sync --locked --all-extras --dev
4343

44-
- name: Test
44+
- name: Test and Coverage
4545
working-directory: src/${{ matrix.directory }}
46-
run: uv run pytest
46+
run: uv run pytest --cov=. --cov-branch --cov-report=html:htmlcov/${{ matrix.directory }} --cov-report=term-missing
47+
env:
48+
COVERAGE_FILE: .coverage.${{ matrix.directory }}
4749

4850
- name: Build
4951
working-directory: src/${{ matrix.directory }}
@@ -53,6 +55,15 @@ jobs:
5355
working-directory: src/${{ matrix.directory }}
5456
run: uv pip install .
5557

58+
- name: Upload coverage report
59+
uses: actions/upload-artifact@v4
60+
with:
61+
name: ${{ matrix.directory }}-coverage-report
62+
path: |
63+
src/${{ matrix.directory }}/htmlcov/*
64+
src/${{ matrix.directory }}/.coverage.${{ matrix.directory }}
65+
include-hidden-files: true
66+
5667
get-directories:
5768
runs-on: ubuntu-latest
5869
outputs:
@@ -66,3 +77,38 @@ jobs:
6677
run: |
6778
directories=$(ls src | grep -v dbtools-mcp-server | grep -v mysql-mcp-server | grep -v oci-pricing-mcp-server | grep -v oracle-db-doc-mcp-server | jq -R -s -c 'split("\n")[:-1]')
6879
echo "directories=$directories" >> $GITHUB_OUTPUT
80+
81+
combined-coverage:
82+
runs-on: ubuntu-latest
83+
needs: build
84+
steps:
85+
- name: Checkout code
86+
uses: actions/checkout@v4
87+
88+
- name: Set up Python
89+
uses: actions/setup-python@v5
90+
with:
91+
python-version: "3.13"
92+
93+
- name: Install requirements
94+
run: pip install -r requirements-dev.txt
95+
96+
- name: Download Artifacts
97+
uses: actions/download-artifact@v4
98+
with:
99+
pattern: '*-coverage-report' # Downloads all artifacts starting with 'my-artifact-'
100+
merge-multiple: true # Merges the contents of multiple artifacts into a single directory
101+
102+
- name: Combine Coverage reports
103+
run: |
104+
make combine-coverage
105+
106+
- name: Upload combined reports
107+
uses: actions/upload-artifact@v4
108+
with:
109+
name: all-in-one-coverage-report
110+
path: |
111+
oracle-mcp-coverage-report/*
112+
.coverage
113+
include-hidden-files: true
114+

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ test:
5555
cd ../..; \
5656
fi \
5757
done
58+
$(MAKE) combine-coverage
59+
60+
combine-coverage:
5861
uv run coverage combine
5962
uv run coverage html
6063
uv run coverage report --fail-under=70

src/oci-api-mcp-server/pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,8 @@ omit = [
4646
".venv/*",
4747
]
4848

49+
[tool.coverage.report]
50+
precision = 2
51+
fail_under = 91.81
52+
53+

src/oci-compute-instance-agent-mcp-server/pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,7 @@ omit = [
4646
".venv/*",
4747
]
4848

49+
[tool.coverage.report]
50+
precision = 2
51+
fail_under = 42.5
52+

src/oci-compute-mcp-server/pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,8 @@ omit = [
4545
"**/tests/*",
4646
"dist/*",
4747
".venv/*",
48-
]
48+
]
49+
50+
[tool.coverage.report]
51+
precision = 2
52+
fail_under = 69.64

src/oci-identity-mcp-server/pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,7 @@ omit = [
4646
".venv/*",
4747
]
4848

49+
[tool.coverage.report]
50+
precision = 2
51+
fail_under = 58
52+

src/oci-logging-mcp-server/pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,8 @@ omit = [
4444
".venv/*",
4545
]
4646

47+
[tool.coverage.report]
48+
precision = 2
49+
fail_under = 76.92
50+
51+

src/oci-migration-mcp-server/pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,8 @@ omit = [
4646
".venv/*",
4747
]
4848

49+
[tool.coverage.report]
50+
precision = 2
51+
fail_under = 53.84
52+
53+

src/oci-monitoring-mcp-server/pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,8 @@ omit = [
4646
".venv/*",
4747
]
4848

49+
[tool.coverage.report]
50+
precision = 2
51+
fail_under = 75
52+
53+

src/oci-network-load-balancer-mcp-server/pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,8 @@ omit = [
4646
".venv/*",
4747
]
4848

49+
[tool.coverage.report]
50+
precision = 2
51+
fail_under = 66.66
52+
53+

0 commit comments

Comments
 (0)