跳转到主要内容

构建taskcluster任务图

项目描述

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

Taskgraph

Taskgraph是一个用于生成Taskcluster CI服务任务图的Python库。一旦您的项目超过单个.taskcluster.yml文件,它就是推荐的配置任务的方法,并且是Firefox CI中构成超过30,000个任务(并持续增加)的引擎。

有关更多信息和使用说明,请查看文档

工作原理

Taskgraph利用了Taskcluster是一个通用的任务执行平台这一事实。这意味着任务可以通过其综合API进行调度,而不仅限于由支持的事件触发。

Taskgraph利用这个执行平台,允许CI系统扩展到任何大小或复杂性。

  1. 通过Taskcluster的普通.taskcluster.yml文件创建了一个决策任务。此任务调用taskgraph

  2. Taskgraph评估一系列基于yaml的任务定义(类似于其他CI服务提供的定义)。

  3. Taskgraph对这些任务定义应用转换。转换是Python函数,可以程序性地修改或克隆任务定义。

  4. Taskgraph应用一些可选的优化逻辑以删除不必要的任务。

  5. Taskgraph通过其API将生成的任务图提交给Taskcluster。

Taskgraph通过声明性任务配置与程序性修改的组合,使其能够支持任何规模的CI系统。Taskgraph是驱动Firefox CI中30,000+任务的库。

安装

Taskgraph支持Python 3.8及以上版本,并可以从Pypi安装。

pip install taskcluster-taskgraph

或者,可以直接克隆仓库并安装。

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

在这两种情况下,建议使用Python 虚拟环境

参与贡献

如果您想参与贡献,请参阅我们的贡献文档

由以下支持