{% extends "base.html" %} {% block title %}Dashboard - circus{% endblock %} {% block topbar %} {% endblock %} {% block topbar_title %}Dashboard{% endblock %} {% block topbar_context %}Nix evaluations, builds, workers, and queue state{% endblock %} {% block content %} {% if !announcements.is_empty() %}
{% for item in announcements %}
{{ item.title }}: {{ item.content }}
{% endfor %}
{% endif %} {% let finished_builds = total_builds - running_builds - pending_builds %}
Total builds {{ total_builds }}all tracked builds Succeeded {{ completed_builds }} {% if total_builds > 0 %} {{ completed_builds * 100 / total_builds }}% of all builds {% else %} 0% of all builds {% endif %} Failed {{ failed_builds }} {% if total_builds > 0 %} {{ failed_builds * 100 / total_builds }}% of all builds {% else %} 0% of all builds {% endif %} Running {{ running_builds }}currently running Queued {{ pending_builds }}pending now Success rate {% if finished_builds > 0 %} {{ completed_builds * 100 / finished_builds }}% {% else %} - {% endif %} completed / finished

Projects

all projects {% if is_admin %}new project{% endif %}
{% if projects.is_empty() %}
No projects yet
{% if is_admin %}
Create a project to get started.
{% endif %}
{% else %}
{% for p in projects %} {% endfor %}
Project Jobsets Last eval Eval status Failing jobs Queued Systems Updated
{{ p.name }} {{ p.jobset_count }} {{ p.last_eval_time }} {{ p.last_eval_status }} {{ p.failing_jobs }} {{ p.queued_jobs }} {{ p.systems }} {{ p.updated_at }}
{% endif %}

Builds

all builds
Open selected
{% if recent_builds.is_empty() %}
No builds yet
Builds appear once an evaluation produces jobs.
{% else %}
{% for b in recent_builds %} {% endfor %}
Build Project Job System Status Duration Created Log
#{{ b.id_short }} {% match b.project_id %} {% when Some with (project_id) %} {{ b.project_name }} {% when None %} - {% endmatch %} {{ b.job_name }} {{ b.system }} {{ b.status_text }} {{ b.duration }} {{ b.created_at }} {% if b.has_log %} log {% else %} - {% endif %}
{% endif %}

Agents

manage
{% if workers.is_empty() %}
No agents
No agent sessions have checked in.
{% else %}
{% for w in workers %} {% endfor %}
Agent System Status Load
{% if !auth_name.is_empty() %} {{ w.name }} {% else %} Agent #{{ loop.index }} {% endif %} {{ w.system }} {{ w.status_text }} {{ w.current_jobs }}/{{ w.max_jobs }}
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}