{% extends "base.html" %} {% import "repo_tabs.html" as m %} {% block title %}Coverage ยท {{ repo.owner }}/{{ repo.name }}{% endblock %} {% block tabs %}{% call m::tabs(repo, "coverage") %}{% endblock %} {% block content %}

Coverage of {{ bookmark }}

{% if let Some(r) = report %}
{{ self.pct(r.percent()) }}{% if let Some(d) = self.delta_text() %} {{ d }}{% endif %}
Lines
{{ r.lines_hit }} of {{ r.lines_found }} run
{% if r.functions_found > 0 %}
Functions
{{ self.pct(r.functions_percent()) }} ({{ r.functions_hit }} of {{ r.functions_found }})
{% endif %} {% if r.branches_found > 0 %}
Branches
{{ self.pct(r.branches_percent()) }} ({{ r.branches_hit }} of {{ r.branches_found }})
{% endif %}
From
run #{{ r.run_number }}, job {{ r.job }},
Files
{{ r.files }}{% if r.dropped > 0 %} ({{ r.dropped }} named in the report are not in this state and are left out){% endif %}
Badge
coverage badge [![coverage]({{ shell.base_url }}{{ repo.url }}/coverage/badge.svg)]({{ shell.base_url }}{{ repo.url }}/coverage)
{% if !trend.is_empty() %}

The last {{ runs }} runs

{{ trend|safe }}
{% endif %}

Files sorted by {% if sort == "missed" %}lines missed{% else if sort == "percent" %}coverage, lowest first{% else %}path{% endif %}: {% if sort != "missed" %}lines missed {% endif %}{% if sort != "percent" %}lowest first {% endif %}{% if sort != "path" %}path{% endif %}

{% for f in files %}{% endfor %}
FileCoverageLinesMissed
{{ f.path }} {{ self.pct(f.percent()) }} {{ f.lines_found }} {{ f.missed() }}
{% else %}

No coverage report for {{ bookmark }} yet.

Give a job in .flow/pipeline.kdl an artifact named coverage holding an LCOV report, and the hub reads it when the job uploads it. For Rust:

job "coverage" {
    sandbox "rust"
    exec "cargo" "llvm-cov" "--workspace" "--lcov" "--output-path" "/src/target/lcov.info"
    output {
        artifact "coverage" { path "/src/target/lcov.info" }
    }
}

Istanbul (--reporter=lcov), coverage.py (coverage lcov) and gcov with lcov write LCOV too. Paths are read relative to the job's /src.

{% endif %} {% endblock %}