Workflow qa

  • task_data:

    • source_artifact (Single lookup, required): the debian:source-package or debian:upload artifact representing the source package to test

    • binary_artifacts (Multiple lookup, required): the debian:binary-packages or debian:upload artifacts representing the binary packages to test

    • vendor (string, required): the distribution vendor on which to run tests

    • codename (string, required): the distribution codename on which to run tests

    • architectures (list of strings, optional): if set, only run on any of these architecture names

    • architectures_allowlist (list of strings, optional, either concrete architecture names or all): if set, only run on any of these architecture names; while architectures is intended to be supplied by users or passed down from a higher-level workflow, this field is intended to be provided via Task configuration

    • architectures_denylist (list of strings, optional, either concrete architecture names or all): if set, do not run on any of these architecture names; this field is intended to be provided via Task configuration

    • arch_all_host_architecture (string, defaults to amd64): concrete architecture on which to run tasks for Architecture: all packages

    • enable_check_installability (boolean, defaults to True): whether to include installability-checking tasks

    • check_installability_suite (Single lookup, required if enable_check_installability is True): the debian:suite collection to check installability against; once we have a good way to look up the primary suite for a vendor and codename, this could default to doing so

    • enable_autopkgtest (boolean, defaults to True): whether to include autopkgtest tasks

    • autopkgtest_backend (string, optional): see Autopkgtest task

    • enable_reverse_dependencies_autopkgtest (boolean, defaults to True): whether to include autopkgtest tasks for reverse-dependencies

    • reverse_dependencies_autopkgtest_suite (Single lookup, required if enable_reverse_dependencies_autopkgtest is True): the debian:suite collection to search for reverse-dependencies; once we have a good way to look up the primary suite for a vendor and codename, this could default to doing so

    • enable_lintian (boolean, defaults to True): whether to include lintian tasks

    • lintian_backend (string, optional): see Lintian task

    • lintian_fail_on_severity (string, optional): see Lintian task

    • enable_piuparts (boolean, defaults to True): whether to include piuparts tasks

    • piuparts_backend (string, optional): see Piuparts task

Any of the lookups in source_artifact or binary_artifacts may result in promises, and in that case the workflow adds corresponding dependencies. Binary promises must include an architecture field in their data.

The list of architectures to run on is the list of architectures from binary_artifacts, intersecting {architectures} if set, intersecting {architectures_allowlist} if set, and subtracting {architectures_denylist} if set.

The workflow creates sub-workflows and tasks as follows, with substitutions based on its own task data:

  • if enable_check_installability is set, a single CheckInstallability task, with task data:

    • suite: {check_installability_suite}

    • binary_artifacts: the subset of the lookup in this workflow’s binary_artifacts for each available architecture

  • if enable_autopkgtest is set, an autopkgtest sub-workflow, with task data:

    • source_artifact: {source_artifact}

    • binary_artifacts: the subset of the lookup in this workflow’s binary_artifacts for each of all and the concrete architecture in question that exist

    • vendor: {vendor}

    • codename: {codename}

    • backend: {autopkgtest_backend}

    • architectures: {architectures}

    • arch_all_host_architecture: {arch_all_host_architecture}

  • if enable_reverse_dependencies_autopkgtest is set, a reverse_dependencies_autopkgtest sub-workflow, with task data:

    • binary_artifacts: the subset of the lookup in this workflow’s binary_artifacts for each of all and the concrete architecture in question that exist

    • suite_collection: {reverse_dependencies_autopkgtest_suite}

    • vendor: {vendor}

    • codename: {codename}

    • backend: {autopkgtest_backend}

    • architectures: {architectures}

    • arch_all_host_architecture: {arch_all_host_architecture}

  • if enable_lintian is set, a lintian sub-workflow, with task data:

    • source_artifact: {source_artifact}

    • binary_artifacts: the subset of the lookup in this workflow’s binary_artifacts for each of all and the concrete architecture in question that exist

    • vendor: {vendor}

    • codename: {codename}

    • backend: {lintian_backend}

    • architectures: {architectures}

    • arch_all_host_architecture: {arch_all_host_architecture}

    • fail_on_severity: {lintian_fail_on_severity}

  • if enable_piuparts is set, a piuparts sub-workflow, with task data:

    • binary_artifacts: the subset of the lookup in this workflow’s binary_artifacts for each of all and the concrete architecture in question that exist

    • vendor: {vendor}

    • codename: {codename}

    • backend: {piuparts_backend}

    • architectures: {architectures}

    • arch_all_host_architecture: {arch_all_host_architecture}

Todo

Not implemented: enable_check_installability, check_installability_suite, enable_reverse_dependencies_autopkgtest and reverse_dependencies_autopkgtest_suite.