File: sbuild.rst

package info (click to toggle)
debusine 0.14.2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 15,200 kB
  • sloc: python: 195,951; sh: 849; javascript: 335; makefile: 116
file content (83 lines) | stat: -rw-r--r-- 4,124 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
.. workflow:: sbuild

Workflow ``sbuild``
===================

This workflow takes a source package and creates :task:`Sbuild` work
requests to build it for a set of architectures.

* ``task_data``:

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

  * ``input`` (required): see :task:`PackageBuild`.
    ``source_artifact`` may be a :artifact:`debian:source-package` or a
    :artifact:`debian:upload`.  This workflow cannot be populated until this
    is a real artifact, not merely a promise.
  * ``target_distribution`` (required string): ``vendor:codename`` to specify
    the environment to use for building. It will be used to determine
    ``distribution`` or ``environment``, depending on ``backend``.
  * ``backend`` (optional string): see :task:`PackageBuild`
  * ``architectures`` (required list of strings): list of architectures to
    build. It can include ``all`` to build a binary for ``Architecture: all``
  * ``arch_all_build_architecture`` (string, defaults to ``amd64``): concrete
    architecture on which to build ``Architecture: all`` packages
  * ``extra_repositories`` (optional, default unset): enable extra APT
    repositories, see :task:`PackageBuild`.
  * ``environment_variant`` (optional string): variant of the
    environment we want to build on, e.g. ``buildd``; appended during
    environment :ref:`lookup <lookup-syntax>` for
    ``target_distribution`` above.
  * ``build_profiles`` (optional, default unset): select a build profile, see
    :task:`PackageBuild`.
  * ``binnmu`` (optional, default unset): build a binNMU, see
    :task:`PackageBuild`.
  * ``retry_delays`` (optional list): a list of delays to apply to each
    successive retry; each item is an integer suffixed with ``m`` for
    minutes, ``h`` for hours, ``d`` for days, or ``w`` for weeks.
  * ``signing_template_names`` (dictionary, optional): mapping from
    architecture to list of names of binary packages that should be used as
    templates by the :task:`ExtractForSigning` task

The workflow computes dynamic metadata as:

.. dynamic_data::
  :method: debusine.server.workflows.sbuild::SbuildWorkflow.build_dynamic_data

The source package will be built on the intersection of the provided list of
architectures and the architectures supported in the ``Architecture:`` field
of the source package. Architecture ``all`` packages are built on
``arch_all_build_architecture``.

The ``extra_repositories`` are copied from the workflow task, and
extended with overlay repositories (e.g. ``experimental``) if
``target_distribution`` is a known overlay.

The workflow may also apply a denylist of architectures if it finds a
:collection:`debian:suite` collection corresponding to the build
distribution/environment, and that suite provides one.

The workflow adds event reactions that cause the :artifact:`debian:upload`
artifact in the output for each architecture to be provided as
``{prefix}build-{architecture}`` in the workflow's internal collection, and
the :artifact:`debian:package-build-log` artifact in the output for each
architecture to be provided as ``{prefix}buildlog-{architecture}`` in the
workflow's internal collection.

If the workspace has a :collection:`debian:package-build-logs` collection,
then the workflow adds :ref:`action-update-collection-with-data` and
:ref:`action-update-collection-with-artifacts` event reactions to each
sbuild work request to record their build logs there.

If ``retry_delays`` is set, then the workflow adds a corresponding
``on_failure`` :ref:`action-retry-with-delays` action to each of the sbuild
work requests it creates.  This provides a simplistic way to retry
dependency-wait failures.  Note that this currently retries any failure, not
just dependency-waits; this may change in future.

If ``signing_template_names`` exists, then the workflow adds event reactions
that cause the corresponding :artifact:`debian:binary-package` artifacts in
the output for each architecture to be provided as
``{prefix}signing-template-{architecture}-{binary_package_name}`` in the
workflow's internal collection.