gecko-dev/taskcluster/docs/index.rst
Gregory Szorc 96fa6fe838 Bug 1289643 - Change path for checkouts from "workspace" to "checkouts"; r=dustin
Currently, TaskCluster tasks tend to use the "workspace" directory as
a cache that manages the source checkout *and* additional state.

Historically at Mozilla, we've lumped "source checkout" and "workspace"
(sometimes known as an "objdir") into the same directory. This is
not ideal. Ideally, there is an immutable, read-only source checkout
and all files produced from that source live in a separate directory.

In this commit, the "workspace" directory for the "lint" image has been
renamed to "checkouts" and all tasks using the image have been updated
accordingly. By having "checkout" in the name, we clearly identify this
cache as being relevant to source checkouts, which IMO can serve a
different role from "workspaces." This distinction is important, as the
next commit will prevent the "checkouts" cache from getting optimized
out in certain tasks.

To hammer this point home, documentation on common caches has been
introduced.

MozReview-Commit-ID: BSEc4dM5YCt

--HG--
extra : rebase_source : 5a62939e066d3723736b41e14007112d92346684
2016-07-29 10:44:19 -07:00

33 lines
1.1 KiB
ReStructuredText

.. taskcluster_index:
TaskCluster Task-Graph Generation
=================================
The ``taskcluster`` directory contains support for defining the graph of tasks
that must be executed to build and test the Gecko tree. This is more complex
than you might suppose! This implementation supports:
* A huge array of tasks
* Different behavior for different repositories
* "Try" pushes, with special means to select a subset of the graph for execution
* Optimization -- skipping tasks that have already been performed
* Extremely flexible generation of a variety of tasks using an approach of
incrementally transforming job descriptions into task definitions.
This section of the documentation describes the process in some detail,
referring to the source where necessary. If you are reading this with a
particular goal in mind and would rather avoid becoming a task-graph expert,
check out the :doc:`how-to section <how-tos>`.
.. toctree::
taskgraph
parameters
attributes
kinds
transforms
yaml-templates
how-tos
docker-images
caches