Workflow qa
task_data
:source_artifact
(Single lookup, required): thedebian:source-package
ordebian:upload
artifact representing the source package to testbinary_artifacts
(Multiple lookup, required): thedebian:binary-packages
ordebian:upload
artifacts representing the binary packages to testvendor
(string, required): the distribution vendor on which to run testscodename
(string, required): the distribution codename on which to run testsarchitectures
(list of strings, optional): if set, only run on any of these architecture namesarchitectures_allowlist
(list of strings, optional, either concrete architecture names orall
): if set, only run on any of these architecture names; whilearchitectures
is intended to be supplied by users or passed down from a higher-level workflow, this field is intended to be provided via Task configurationarchitectures_denylist
(list of strings, optional, either concrete architecture names orall
): if set, do not run on any of these architecture names; this field is intended to be provided via Task configurationarch_all_host_architecture
(string, defaults toamd64
): concrete architecture on which to run tasks forArchitecture: all
packagesenable_check_installability
(boolean, defaults to True): whether to include installability-checking taskscheck_installability_suite
(Single lookup, required ifenable_check_installability
is True): thedebian: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 soenable_autopkgtest
(boolean, defaults to True): whether to include autopkgtest tasksautopkgtest_backend
(string, optional): see Autopkgtest taskenable_reverse_dependencies_autopkgtest
(boolean, defaults to True): whether to include autopkgtest tasks for reverse-dependenciesreverse_dependencies_autopkgtest_suite
(Single lookup, required ifenable_reverse_dependencies_autopkgtest
is True): thedebian: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 soenable_lintian
(boolean, defaults to True): whether to include lintian taskslintian_backend
(string, optional): see Lintian tasklintian_fail_on_severity
(string, optional): see Lintian taskenable_piuparts
(boolean, defaults to True): whether to include piuparts taskspiuparts_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’sbinary_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’sbinary_artifacts
for each ofall
and the concrete architecture in question that existvendor
:{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’sbinary_artifacts
for each ofall
and the concrete architecture in question that existsuite_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’sbinary_artifacts
for each ofall
and the concrete architecture in question that existvendor
:{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’sbinary_artifacts
for each ofall
and the concrete architecture in question that existvendor
:{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
.