- update_suite
Workflow update_suite
This workflow updates metadata for a single suite. Initially this will just involve generating and signing
basic indexes for the suite, but later it may also generate supplementary
files such as Contents-*
.
task_data
:suite_collection
(Single lookup, required): the suite whose indexes should be generated
The workflow computes dynamic metadata as:
subject: name of
suite_collection
The workflow creates a GenerateSuiteIndexes task, with task data as follows:
suite_collection
:{suite_collection}
generate_at
: the transaction timestamp at which the workflow orchestrator is being run (this needs special care to preserve idempotency, since any later runs of the same workflow orchestrator would have a different transaction timestamp)
It then creates two SignRepositoryIndex tasks with dependencies on the GenerateSuiteIndexes task. They have task data as follows:
suite_collection
:{suite_collection}
unsigned
: the debian:repository-index artifact for theRelease
file produced by the GenerateSuiteIndexes taskmode
:detached
for the first task, orclear
for the secondsigned_name
:Release.gpg
for the first task, orInRelease
for the second
These tasks each have event reactions that add the output
debian:repository-index artifact to the suite at the appropriate
path (Release.gpg
or InRelease
), setting created_at
to the
transaction timestamp at which the workflow orchestrator is being run.
The InRelease
task depends on the Release.gpg
task, in order that
the “current” view of a suite can arrange to only show a snapshot once an
InRelease
file exists for it.
Note
We use two tasks rather than making both signatures in a single task because otherwise the event reactions would have no way of distinguishing between the two output artifacts.