taskcluster/docs/taskcluster-config.rst
author Jared Wein <jwein@mozilla.com>
Thu, 31 Jan 2019 23:40:33 +0000
changeset 512997 e4d259ea825ac517f8d2de85430fbd955be2df92
parent 479281 e3d9b7024efa256b0835b0acdd807d75121bdbdf
child 550096 efeffddcd2205aa74c049059dbfce09e84f9537a
permissions -rw-r--r--
Bug 1521599 - Delete the failures data after it has been output. r=Gijs a=lizzard The failures were remaining in the data object, which later had any remaining keys printed in the diagnostics section. This bug was introduced because we stopped using Array objects to generate formatted strings. In the previous code, this would have ended up just printing out the first failure listed in the diagnostics section (a partial duplicate of the actual Failure Log). Differential Revision: https://phabricator.services.mozilla.com/D18289

Taskcluster Configuration
=========================

Taskcluster requires configuration of many resources to correctly support Firefox CI.
Many of those span multiple projects (branches) instead of riding the trains.

Global Settings
---------------

The data behind configuration of all of these resources is kept in the `ci-configuration`_ repository.
The files in this repository are intended to be self-documenting, but one of particular interest is ``projects.yml``, which describes the needs of each project.

Configuration Implementation
----------------------------

Translation of `ci-configuration`_ to Taskcluster resources, and updating those resources, is handled by `ci-admin`_.
This is a small Python application with commands to generate the expected configuration, compare the expected to actual configuration, and apply the expected configuration.
Only the ``apply`` subcommand requires elevated privileges.

This tool automatically annotates all managed resources with "DO NOT EDIT", warning users of the administrative UI that changes made through the UI may be reverted.

Changing Configuration
----------------------

To change Taskcluster configuration, make patches to `ci-configuration`_ or (if necessary) `ci-admin`_, using the Firefox Build System :: Task Configuration Bugzilla component.
Part of the landing process is for someone with administrative scopes to apply the resulting configuration.

You can test your patches with something like this, assuming ``.`` is a checkout of the `ci-configuration`_ repository containing your changes:

.. code-block: shell

  ci-admin diff --ci-configuration-directory .

.. _ci-configuration: https://hg.mozilla.org/build/ci-configuration/file
.. _ci-admin: https://hg.mozilla.org/build/ci-admin/file