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
|
.. workflow:: package_upload
Workflow ``package_upload``
===========================
This workflow signs and uploads source and/or binary packages to an upload
queue. It is normally expected to be used as a sub-workflow.
* ``task_data``:
* ``source_artifact`` (:ref:`lookup-single`, optional): a
:artifact:`debian:source-package` or :artifact:`debian:upload` artifact
representing the source package (the former is used when the workflow is
started based on a ``.dsc`` rather than a ``.changes``)
* ``binary_artifacts`` (:ref:`lookup-multiple`, optional): a list of
:artifact:`debian:upload` artifacts representing the binary packages
* ``merge_uploads`` (boolean, defaults to False): if True, merge the
uploads and create a single ``PackageUpload`` task to upload them all
together; if False, create a separate ``PackageUpload`` task for each
upload
* ``since_version`` (string, optional): passed to
:task:`MakeSourcePackageUpload` if ``source_artifact`` is a
:artifact:`debian:source-package`
* ``target_distribution`` (string, optional): passed to
:task:`MakeSourcePackageUpload` if ``source_artifact`` is a
:artifact:`debian:source-package`
* ``key`` (string, optional): the fingerprint to sign uploads with, which
must have purpose ``openpgp``
* ``binary_key`` (string, optional): the fingerprint to sign binary
uploads with, which must have purpose ``openpgp``
* ``require_signature`` (boolean, defaults to True): whether uploads must
be signed
* ``target`` (required): the upload queue, as an ``ftp://`` or ``sftp://``
URL
* ``delayed_days`` (integer, optional): the number of days to delay this
upload; this assumes that the upload queue implements Debian's
convention of uploading delayed uploads to a ``DELAYED/{n}-day`` queue
* ``vendor`` (string, optional): the distribution vendor to use for running
:task:`MakeSourcePackageUpload`
* ``codename`` (string, optional): the distribution codename to use for
running :task:`MakeSourcePackageUpload`
* ``arch_all_build_architecture`` (string, defaults to ``amd64``): concrete
architecture on which to run architecture-independent tasks (currently
just :task:`MakeSourcePackageUpload`)
At least one of ``source_artifact`` and ``binary_artifacts`` must be set.
The workflow computes dynamic metadata as:
.. dynamic_data::
:method: debusine.server.workflows.package_upload::PackageUploadWorkflow.build_dynamic_data
The workflow creates the following tasks, each of which has a dependency on
the previous one in sequence, using event reactions to store output in the
workflow's internal collection for use by later tasks:
* if ``source_artifact`` is a :artifact:`debian:source-package` artifact: a
:task:`MakeSourcePackageUpload` task (with ``since_version`` and
``target_distribution``) to build a corresponding ``.changes`` file.
Uses ``vendor`` and ``codename`` to construct the environment lookup.
* if ``merge_uploads`` is True and there is more than one source and/or
binary artifact: a :task:`MergeUploads` task to combine them into a single
upload.
* for each upload (or for the single merged upload, if merging):
* if ``key`` is provided: a :task:`Debsign` task to have Debusine sign the
upload with the given key
* otherwise, if ``binary_key`` is provided and the upload contains
binaries: a :task:`Debsign` task to have Debusine sign the upload with
the given key; if there is a separate signing task for the source
artifact, then this has a dependency on it
* otherwise, if ``require_signature`` is True: an :task:`ExternalDebsign`
task to wait until a user provides a signature, which Debusine will then
include with the upload
* finally, a :task:`PackageUpload` task, to upload the result to the given
upload queue; if there is a separate upload task for the source
artifact, then this has a dependency on it
|