-
-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathaction.yml
More file actions
155 lines (130 loc) · 4.92 KB
/
action.yml
File metadata and controls
155 lines (130 loc) · 4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: 'Pytest Coverage Comment'
description: 'GitHub Action that adds pytest coverage reports as comments to pull requests with badges, test statistics, and direct file links. Requires pull-requests: write permission.'
author: 'Misha Kav'
branding:
icon: 'message-circle'
color: 'blue'
inputs:
github-token:
description: 'GitHub token for API access to create/update comments. Ensure your workflow has pull-requests: write permission.'
default: ${{ github.token }}
required: true
pytest-coverage-path:
description: 'Path to pytest text coverage output (from --cov-report=term-missing)'
default: './pytest-coverage.txt'
required: false
issue-number:
description: 'Pull request number to comment on (required for workflow_dispatch/workflow_run events)'
default: ''
required: false
pytest-xml-coverage-path:
description: 'Path to XML coverage report (from --cov-report=xml:coverage.xml)'
default: ''
required: false
coverage-path-prefix:
description: 'Prefix to add to file paths in coverage report links'
default: ''
required: false
title:
description: 'Main title for the coverage comment (useful for monorepo projects)'
default: 'Coverage Report'
required: false
badge-title:
description: 'Text shown on the coverage percentage badge'
default: 'Coverage'
required: false
hide-badge:
description: 'Hide the coverage percentage badge from the comment'
default: 'false'
required: false
hide-report:
description: 'Hide the detailed coverage table (show only summary and badge)'
default: 'false'
required: false
hide-comment:
description: 'Skip creating PR comment entirely (useful for using outputs only)'
default: 'false'
required: false
hide-emoji:
description: 'Hide emojis in the test summary table (skipped/failures/errors/time columns)'
default: 'false'
required: false
xml-skip-covered:
description: 'Hide files with 100% coverage from XML coverage reports'
default: 'false'
required: false
report-only-changed-files:
description: 'Show only files changed in the current pull request'
default: 'false'
required: false
junitxml-path:
description: 'Path to JUnit XML file for test statistics (passed/failed/skipped)'
default: ''
required: false
junitxml-title:
description: 'Title for the test summary section from JUnit XML'
default: ''
required: false
create-new-comment:
description: 'Create new comment on each run instead of updating existing comment'
default: 'false'
required: false
default-branch:
description: 'Base branch name for file links in coverage report (e.g., main, master)'
default: 'main'
required: false
multiple-files:
description: >
Generate single comment with multiple coverage reports (useful for monorepos).
Format: One report per line as "Title, coverage-path, junit-path".
Coverage path can be TXT (from --cov-report=term-missing) or XML (from --cov-report=xml).
Examples: "Backend API, ./backend/coverage.txt, ./backend/junit.xml"
"Frontend Tests, ./frontend/coverage.xml, ./frontend/junit.xml"
default: ''
required: false
remove-link-from-badge:
description: 'Remove hyperlink from coverage badge (badge becomes plain image)'
default: 'false'
required: false
unique-id-for-comment:
description: 'Unique identifier for matrix builds to update separate comments (e.g., matrix.python-version)'
default: ''
required: false
remove-links-to-files:
description: 'Remove file links from coverage table to reduce comment size'
default: 'false'
required: false
remove-links-to-lines:
description: 'Remove line number links from coverage table to reduce comment size'
default: 'false'
required: false
text-instead-badge:
description: 'Use simple text instead of badge images for coverage display'
default: 'false'
required: false
outputs:
coverage:
description: 'Coverage percentage from pytest report (e.g., 85%)'
color:
description: 'Badge color based on coverage percentage (red/orange/yellow/green/brightgreen)'
coverageHtml:
description: 'Full HTML coverage report with clickable links to uncovered lines'
summaryReport:
description: 'Test summary in markdown format with statistics (tests/skipped/failures/errors/time)'
warnings:
description: 'Number of coverage warnings from pytest-cov'
tests:
description: 'Total number of tests run (from JUnit XML)'
skipped:
description: 'Number of skipped tests (from JUnit XML)'
failures:
description: 'Number of failed tests (from JUnit XML)'
errors:
description: 'Number of test errors (from JUnit XML)'
time:
description: 'Test execution time in seconds (from JUnit XML)'
notSuccessTestInfo:
description: 'JSON details of failed, errored, and skipped tests (from JUnit XML)'
runs:
using: 'node24'
main: 'dist/index.js'