<sectionclass="panel"><divclass="strip bad">The pipeline is not valid, so nothing ran.</div><preclass="snippet">{{ run.error }}</pre><pclass="small mute">Run <code>flow check</code> locally to see the same problems.</p></section>
<summary><spanclass="flow-glyph st-{{ l.j.status }}"data-glyph>{{ crate::web::flow::glyph(l.j.status) }}</span><strong>{{ l.j.name }}</strong><spanclass="small mute"data-meta>{{ l.j.status }}{% if let Some(c) = l.j.exit_code %} · exit {{ c }}{% endif %} · {{ l.duration }}{% if !l.j.runner.is_empty() %} · on {{ l.j.runner }}{% endif %}</span>{% if !l.j.receipt_hash.is_empty() %} <spanclass="small mute">· receipt <codetitle="{{ l.j.receipt_hash }}">{{ l.j.receipt_hash|short }}</code></span>{% endif %}</summary>
32
{% if !l.j.error.is_empty() %}<divclass="strip bad">{{ l.j.error }}</div>{% endif %}
33
<preclass="flow-log"data-logdata-seq="{{ l.last_seq }}">{% for line in l.lines %}<spanclass="ln s-{{ line.stream }}"><spanclass="t">{{ line.t / 1000 }}.{{ "{:01}"|format(line.t % 1000 / 100) }}s</span>{{ line.text }}</span>
34
{% endfor %}</pre>
35
{% if l.lines.is_empty() && l.j.status == "queued" %}<pclass="small mute pad">Waiting for a runner{% if !l.j.depends_on().is_empty() %} and for {{ l.j.depends_on().join(", ") }}{% endif %}.</p>{% endif %}
36
{% if l.lines.is_empty() && l.j.status == "skipped" %}<pclass="small mute pad">Skipped: a job it depends on did not pass.</p>{% endif %}