{% macro show_action(action, first = false) %}
<li>
  {% if first %}
  <details open>
  {% else %}
  <details>
  {% endif %}
    <summary>
      {{ action["name_prefix"] | e }} <tt>{{ action["name"] | e}}</tt>
      {% if action["may_fail"] %}
      {% if action["exit_code"] != 0 %}
      failure: <b>{{ action["may_fail"] }}</b>
      {% else %}
      tainted (<tt>{{ action["may_fail"] }}</tt>)
      {% endif %}
      {% elif action["primary_output"] %}
      {% if action["exit_code"] != 0 %}
      failed to build: <b>{{ action["primary_output"] | e }}</b>
      {% else %}
      build: <tt>{{ action["primary_output"] | e }}</tt>
      {% endif %}
      {% endif %}
    </summary>
    <ul>
      {% if action["stdout"] %}
      <li> stdout: <a href="/blob/{{ action["stdout"] | e }}">{{action["stdout"] | e }}</a></li>
      {% endif %}
      {% if action["stderr"] %}
      <li> stderr: <a href="/blob/{{ action["stderr"] | e }}">{{action["stderr"] | e }}</a></li>
      {% endif %}
      {% if action["cmd"] %}
      <li>
        <details>
          <summary>command</summary>
          <tt>{{ action["cmd"] | e }}</tt>
        </details>
      </li>
      {% endif %}
      {% if action["origins"] %}
      <li> origins
        <ul>
          {% for origin in action["origins"] %}
          <li> <tt>{{ origin | e }}</tt></li>
          {% endfor %}
        </ul>
      </li>
      {% endif %}
      {% if action["duration"] %}
      <li> duration: {{ action["duration"] | e  }}</li>
      {% endif %}
      {% if action["cached"] %}
      <li> cached: {{ action["cached"] | e }}</li>
      {% endif %}
      {% if action["exit_code"] != 0 %}
      <li> exit code: {{ action["exit_code"] }}</li>
      {% endif %}
      {% if action["output"] %}
      <li> output
        <ul>
          {% for out in action["output"] %}
          {% if action["artifacts"].get(out) %}
          <li>
            <a href="/blob/{{ action["artifacts"].get(out) | e}}"><tt>{{ out | e }}</tt></a>
            <a href="/blob/{{ action["artifacts"].get(out) | e}}/{{ action["basenames"].get(out) | e}}"><tt>[&darr;]</tt></a>
          </li>
          {% else %}
          <li> <tt>{{ out | e }}</tt></li>
          {% endif %}
          {% endfor %}
        </ul>
      </li>
      {% endif %}
      {% if action["output_dirs"] %}
      <li> output directories
        <ul>
          {% for out in action["output_dirs"] %}
          {% if action["artifacts"].get(out) %}
          <li> <a href="/tree/{{ action["artifacts"].get(out) | e}}"><tt>{{ out | e }}</tt></a></li>
          {% else %}
          <li> <tt>{{ out | e }}</tt></li>
          {% endif %}
          {% endfor %}
        </ul>
      </li>
      {% endif %}
    </ul>
  </details>
</li>
{% endmacro %}
