Skip to content
Snippets Groups Projects
Commit c2d103d6 authored by Teake Nutma's avatar Teake Nutma
Browse files

Add dockerfile for testbadge

parent 1c8d9b03
Branches
No related merge requests found
FROM python:3-slim
# https://github.com/weiwei/junitparser/pull/89 is in junitparser 2.6.0.
# https://github.com/weiwei/junitparser/pull/90 is not yet merged :(.
RUN pip install anybadge "junitparser>=2.6"
COPY testbadge.py /usr/local/bin/testbadge
CMD ["/bin/bash"]
#!/usr/bin/env python3
import argparse
from anybadge import Badge
from junitparser import JUnitXml
def create_badge(report_path, badge_path):
report = JUnitXml.fromfile(report_path)
report.update_statistics()
total = report.tests - report.skipped
passed = total - report.errors - report.failures
percentage = 100 * passed / total
color = 'green' if passed == total else 'red'
badge = Badge(f'tests', f'{percentage:.1f}%', default_color=color)
badge.write_badge(badge_path)
def main():
parser = argparse.ArgumentParser(description='Create a CI badge from a test report.')
parser.add_argument('report', metavar='XML', type=str, help='Path of input JUnit XML report file')
parser.add_argument('badge', metavar='SVG', type=str, help='Path of output SVG file')
args = parser.parse_args()
create_badge(args.report, args.badge)
if __name__ == '__main__':
main()
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment