Skip to main content

Build taskcluster taskgraphs

Project description

Task Status pre-commit.ci status Code Coverage Pypi Version Documentation Status License

Taskgraph

Taskgraph is a Python library to generate graphs of tasks for the Taskcluster CI service. It is the recommended approach for configuring tasks once your project outgrows a single .taskcluster.yml file and is what powers the over 30,000 tasks and counting that make up Firefox’s CI.

For more information and usage instructions, see the docs.

How It Works

Taskgraph leverages the fact that Taskcluster is a generic task execution platform. This means that tasks can be scheduled via its comprehensive API, and aren’t limited to being triggered in response to supported events.

Taskgraph leverages this execution platform to allow CI systems to scale to any size or complexity.

  1. A decision task is created via Taskcluster’s normal .taskcluster.yml file. This task invokes taskgraph.

  2. Taskgraph evaluates a series of yaml based task definitions (similar to those other CI offerings provide).

  3. Taskgraph applies transforms on top of these task definitions. Transforms are Python functions that can programmatically alter or even clone a task definition.

  4. Taskgraph applies some optional optimization logic to remove unnecessary tasks.

  5. Taskgraph submits the resulting task graph to Taskcluster via its API.

Taskgraph’s combination of declarative task configuration combined with programmatic alteration are what allow it to support CI systems of any scale. Taskgraph is the library that powers the 30,000+ tasks making up Firefox’s CI.

Installation

Taskgraph supports Python 3.8 and up, and can be installed from Pypi:

pip install taskcluster-taskgraph

Alternatively, the repo can be cloned and installed directly:

git clone https://github.com/taskcluster/taskgraph
cd taskgraph
python setup.py install

In both cases, it’s recommended to use a Python virtual environment.

Get Involved

If you’d like to get involved, please see our contributing docs!

Project details


Release history Release notifications | RSS feed

This version

8.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taskcluster-taskgraph-8.0.0.tar.gz (217.6 kB view details)

Uploaded Source

Built Distribution

taskcluster_taskgraph-8.0.0-py3-none-any.whl (188.3 kB view details)

Uploaded Python 3

File details

Details for the file taskcluster-taskgraph-8.0.0.tar.gz.

File metadata

  • Download URL: taskcluster-taskgraph-8.0.0.tar.gz
  • Upload date:
  • Size: 217.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for taskcluster-taskgraph-8.0.0.tar.gz
Algorithm Hash digest
SHA256 14ebbfc272781a95e6b19fde5e0e8075201edba0b340113253383c154c34809c
MD5 903d2c4d8a180acc2687a194d07ac6a2
BLAKE2b-256 94a372ef9324a999d7998b3d37591cbb6d907268d0bc46fe914bb4fcf6daae17

See more details on using hashes here.

File details

Details for the file taskcluster_taskgraph-8.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for taskcluster_taskgraph-8.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7105b1ed979a6a0fe94f3e304bae0e2d14f15ced6ea86bb31a547f3fd9e77d25
MD5 dfb156566694b63c12b827679c7cd266
BLAKE2b-256 3de34facc24abaf6c885891b6c763f54d132e56afb79e56844462e44aec219fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page