task.rst (1779B)
1 Task Transforms 2 =============== 3 4 .. note:: 5 6 These transforms are currently duplicated by standalone Taskgraph 7 and will likely be refactored / removed at a later date. 8 9 Every kind needs to create tasks, and all of those tasks have some things in 10 common. They all run on one of a small set of worker implementations, each 11 with their own idiosyncrasies. And they all report to TreeHerder in a similar 12 way. 13 14 The transforms in ``taskcluster/gecko_taskgraph/transforms/task.py`` implement 15 this common functionality. They expect a "task description", and produce a 16 task definition. The schema for a task description is defined at the top of 17 ``task.py``, with copious comments. Go forth and read it now! 18 19 In general, the task-description transforms handle functionality that is common 20 to all Gecko tasks. While the schema is the definitive reference, the 21 functionality includes: 22 23 * TreeHerder metadata 24 25 * Build index routes 26 27 * Information about the projects on which this task should run 28 29 * Optimizations 30 31 * Defaults for ``expires-after`` and and ``deadline-after``, based on project 32 33 * Worker configuration 34 35 The parts of the task description that are specific to a worker implementation 36 are isolated in a ``task_description['worker']`` object which has an 37 ``implementation`` property naming the worker implementation. Each worker 38 implementation has its own section of the schema describing the fields it 39 expects. Thus the transforms that produce a task description must be aware of 40 the worker implementation to be used, but need not be aware of the details of 41 its payload format. 42 43 The ``task.py`` file also contains a dictionary mapping treeherder groups to 44 group names using an internal list of group names. Feel free to add additional 45 groups to this list as necessary.