blhc

# Workflow `blhc`

This workflow schedules Blhc tasks to analyze the logs from builds. A single Blhc is scheduled for each artifact.

- `task_data`:

  - `prefix` (string, optional): prefix this string to the item names provided in the internal collection

  - `reference_prefix` (string, optional unless `enable_regression_tracking` is set): prefix for the item names provided in the internal collection in the corresponding workflow run for reference tests

  - `source_artifact` (Single lookup, optional unless `enable_regression_tracking` is set): the debian:source-package or debian:upload source artifact that the build logs are based on

  - `binary_artifacts` (Multiple lookup; exactly one of this or `package_build_logs` must be set): the debian:binary-package or debian:upload binary artifacts whose related debian:package-build-log artifacts should be analyzed

  - `package_build_logs` (Multiple lookup; exactly one of this or `binary_artifacts` must be set): the debian:package-build-log artifacts to analyze

  - `qa_suite` (Single lookup, optional unless `enable_regression_tracking` or `update_qa_results` is True): the debian:suite collection that reference tests are being run against to detect regressions

  - `reference_qa_results` (Single lookup, optional unless `enable_regression_tracking` or `update_qa_results` is True): the debian:qa-results collection that contains the reference results of QA tasks to use to detect regressions

  - `enable_regression_tracking` (boolean, defaults to False): configure the workflow to detect and display regressions in QA results

  - `update_qa_results` (boolean, defaults to False): when set to True, the workflow runs QA tasks and updates the collection passed in `reference_qa_results` with the results.

  - `extra_flags` (optional): a list of command-line flags to be passed to each scheduled Blhc task

  - `vendor` (string, required): the distribution vendor, used to build `environment` for Blhc

  - `codename` (string, required): the distribution codename, used to build `environment` for Blhc

  - `arch_all_build_architecture` (string, defaults to `amd64`): concrete architecture on which to run tasks for binary packages with `Architecture: all`.

The workflow computes dynamic metadata as:

- subject: distinct `source` field (separated by spaces) from each of the artifacts’ data

- source_artifact_id: id of the source_artifact or None

- package_build_logs_ids: ids of the package_build_logs

The lookup in `package_build_logs` may result in promises, and in that case the workflow adds corresponding dependencies. Promises must include `source_package_name` and `source_package_version` fields in their data.