Workflow Report

This is a HTML-ification of Workflow state (workflow.state) and the associated files in the workflow output directory. Below is the doc section of the workflow (.workflow file).


{{ doc }}
The workflow started on {{ status.get("started", 0.0) | timestamp_to_txt }}, status on the steps is provided below.

If a workflow step (worklet / run) or test produced any artifacts, then they are listed here.


This is the configuration (.config file) with any variable-placeholders such as {{ '{{ local.env.HOME }}' }} filled out.


{{ config | to_yaml }}

Steps

{% for step in steps%} {% if step["status"]["failed"] %} {% set step_state = "Failed" %} {% set step_style = "danger" %} {% elif step["status"]["passed"] %} {% set step_state = "Ok" %} {% set step_style = "success" %} {% elif step["status"]["skipped"] %} {% set step_state = "Skipped" %} {% set step_style = "light" %} {% else %} {% set step_state = "Unprocessed" %} {% set step_style = "secondary" %} {% endif %}

Steps uses worklets. A description of the worklet used by the current step is provided below. The description is extracted from the docstring of the worklet and provided here in verbatim / as-is.


{{ step['description'] }}
{{ step | pprint }}
{% if "runlog" in step['extras'] %}
{% for stem, runlog in step['extras']['runlog'].items() %} {% if runlog["state"]["err"] %} {% set cmd_style = "danger" %} {% else %} {% set cmd_style = "success" %} {% endif %}
  •  .output
$ {{ runlog["state"]["cmd"] }}
{{ runlog["output"] }}
{% endfor %}
{% endif %} {% if "testreport" in step['extras'] %}

 Testreport

This is a visualization of the reportlog generated by the pytest plugin-in pytest-reportlog.

Summary

Tests

Tests are listed below.

See the testinfo for the reason from skipped tests and the crash-info from failed tests.

The runlog shows info for calls to cijoe.run() / cijoe.run_local() from within the test.

When a button is greyed out, then neither a testinfo nor a runlog is available.

    {% set cur = namespace(left=None, right=None) %} {% for nodeid, testcase in step["extras"]["testreport"]["tests"].items() %} {% if cur.group_left != testcase["group_left"] %} {% set cur.group_left = testcase["group_left"] %} {% set cur.group_right = testcase["group_right"] %}

    {{ cur.group_left }}

    {% endif %} {% if "failed" in testcase["outcome"] %} {% set testcase_style = "danger" %} {% set testcase_text = "failed" %} {% elif "skipped" in testcase["outcome"] %} {% set testcase_style = "secondary" %} {% set testcase_text = "skipped" %} {% elif "passed" in testcase["outcome"] %} {% set testcase_style = "success" %} {% set testcase_text = "passed" %} {% else %} {% set testcase_style = "warning" %} {% endif %}
  • {% if testcase["longrepr"] %}
  • {{ testcase["longrepr"] }}
  • {% endif %}
  • {% for stem, runlog in testcase['runlog'].items() %} {% if runlog["state"]["err"] %} {% set cmd_style = "danger" %} {% else %} {% set cmd_style = "success" %} {% endif %}
    •  .output
    $ {{ runlog["state"]["cmd"] }}
    {{ runlog["output"] }}
    {% endfor %}
  • {% endfor %}
{% endif %}
{% endfor %}