bamboo-engine 是一个通用的流程引擎,他可以解析,执行,调度由用户创建的流程任务,并提供了如暂停,撤销,跳过,强制失败,重试和重入等等灵活的控制能力和并行、子流程等进阶特性,并可通过水平扩展来进一步提升任务的并发处理能力。

Overview

license PRs Welcome Python 3.6 Python 3.7 codecov BK Pipelines Status

bamboo-engine 是一个通用的流程引擎,他可以解析,执行,调度由用户创建的流程任务,并提供了如暂停,撤销,跳过,强制失败,重试和重入等等灵活的控制能力和并行、子流程等进阶特性,并可通过水平扩展来进一步提升任务的并发处理能力。

整体设计

bamboo-engine 是流程引擎核心模块、调度逻辑的定义和实现,并没有内置特定的引擎运行时,需要搭配实现了 bamboo_engine.eri.interfaces.EngineRuntimeInterface 接口的引擎运行时使用,目前提供了以下运行时可供使用:

引擎整体架构:

Quick start

1. 安装依赖

$ pip install bamboo-pipeline

2. 项目初始化

由于 bamboo-pipeline 运行时基于 Django 实现,所以需要新建一个 Django 项目:

$ django-admin startproject bamboo_engine_playground
$ cd bamboo_engine_playground

bamboo_engine_playground.settings.py 下添加如下配置:

from pipeline.eri.celery.queues import *
from celery import Celery

app = Celery("proj")

app.config_from_object("django.conf:settings")

INSTALLED_APPS = [
    ...
    "pipeline",
    "pipeline.engine",
    "pipeline.component_framework",
    "pipeline.eri",
    ...
]

bamboo_engine_playground 目录下初始化数据库:

$ python manage.py migrate

3. 执行流程

首先在 bamboo_engine_playground 目录下启动 celery worker:

$ python manage.py celery worker -Q er_execute,er_schedule -l info

创建并执行一个简单的流程:

import time

from bamboo_engine import api
from bamboo_engine.builder import *
from pipeline.eri.runtime import BambooDjangoRuntime

# 使用 builder 构造出流程描述结构
start = EmptyStartEvent()
# 这里先使用 bamboo-pipeline 自带的示例组件,我们会在后续的章节中学习如何自定义组件
act = ServiceActivity(component_code="example_component")
end = EmptyEndEvent()

start.extend(act).extend(end)

pipeline = builder.build_tree(start)

# 执行流程对象
runtime = BambooDjangoRuntime()

api.run_pipeline(runtime=runtime, pipeline=pipeline)

# 等待 1s 后获取流程执行结果
time.sleep(1)

result = api.get_pipeline_states(runtime=runtime, root_id=pipeline["id"])

print(result.data)

随后我们就能够看到流程的状态信息,如下所示,流程中的所有节点已经执行成功:

{'pc31c89e6b85a4e2c8c5db477978c1a57': {'id': 'pc31c89e6b85a4e2c8c5db477978c1a57',
  'state': 'FINISHED',
  'root_id:': 'pc31c89e6b85a4e2c8c5db477978c1a57',
  'parent_id': 'pc31c89e6b85a4e2c8c5db477978c1a57',
  'version': 'vaf47e56f2f31401e979c3c47b2a0c285',
  'loop': 1,
  'retry': 0,
  'skip': False,
  'created_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 688664, tzinfo=<UTC>),
  'started_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 688423, tzinfo=<UTC>),
  'archived_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 775165, tzinfo=<UTC>),
  'children': {'e42035b3f98374062921a191115fc602e': {'id': 'e42035b3f98374062921a191115fc602e',
    'state': 'FINISHED',
    'root_id:': 'pc31c89e6b85a4e2c8c5db477978c1a57',
    'parent_id': 'pc31c89e6b85a4e2c8c5db477978c1a57',
    'version': 've2d0fa10d7d842a1bcac25984620232a',
    'loop': 1,
    'retry': 0,
    'skip': False,
    'created_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 744490, tzinfo=<UTC>),
    'started_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 744308, tzinfo=<UTC>),
    'archived_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 746690, tzinfo=<UTC>)},
   'e327f83de42df4ebfab375c271bf63d29': {'id': 'e327f83de42df4ebfab375c271bf63d29',
    'state': 'FINISHED',
    'root_id:': 'pc31c89e6b85a4e2c8c5db477978c1a57',
    'parent_id': 'pc31c89e6b85a4e2c8c5db477978c1a57',
    'version': 'v893cdc14150d4df5b20f2db32ba142b3',
    'loop': 1,
    'retry': 0,
    'skip': False,
    'created_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 753321, tzinfo=<UTC>),
    'started_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 753122, tzinfo=<UTC>),
    'archived_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 758697, tzinfo=<UTC>)},
   'e6c7d7a3721ca4b19a5a7f3b34d8387bf': {'id': 'e6c7d7a3721ca4b19a5a7f3b34d8387bf',
    'state': 'FINISHED',
    'root_id:': 'pc31c89e6b85a4e2c8c5db477978c1a57',
    'parent_id': 'pc31c89e6b85a4e2c8c5db477978c1a57',
    'version': 'v0c661ee6994d4eb4bdbfe5260f9a9f22',
    'loop': 1,
    'retry': 0,
    'skip': False,
    'created_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 767563, tzinfo=<UTC>),
    'started_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 767384, tzinfo=<UTC>),
    'archived_time': datetime.datetime(2021, 3, 10, 3, 45, 54, 773341, tzinfo=<UTC>)}}}}

恭喜你,你已经成功的创建了一个流程并把它运行起来了!

benchmark

测试环境:

  • MacBook Pro(16 英寸,2019)
  • 处理器:2.6 GHz 六核Intel Core i7
  • 内存:32 GB 2667 MHz DDR4
  • OS:macOS Big Sur 11.2.1
  • Broker:RabbitMQ 3.8.2
  • MySQL:5.7.22
  • worker 启动命令(单个 worker 进程 -c 参数不变,通过增加进程来提高并发处理能力)
    • python manage.py celery worker -c 100 -P gevent -l info -Q er_execute -n execute_%(process_num)02d
    • python manage.py celery worker -c 100 -P gevent -l info -Q er_schedule -n schedule_%(process_num)02d
测试场景 worker concurrency 流程执行耗时(s)
100个流程(单流程17个节点)并发执行 100 25.98
100个流程(单流程17个节点)并发执行 200 14.75
100个流程(单流程17个节点)并发执行 500 8.29
100个流程(单流程17个节点)并发执行 1000 6.78
1000节点大流程 100 19.33
1000节点大流程 200 12.5
1000节点大流程 500 11
1000节点大流程 1000 7.5

Roadmap

Support

BlueKing Community

  • BK-CI:蓝鲸持续集成平台是一个开源的持续集成和持续交付系统,可以轻松将你的研发流程呈现到你面前。
  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。
  • BK-BCS-SaaS:蓝鲸容器管理平台SaaS基于原生Kubernetes和Mesos自研的两种模式,提供给用户高度可扩展、灵活易用的容器产品服务。
  • BK-PaaS:蓝鲸PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。
  • BK-SOPS:标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类SaaS产品。
  • BK-CMDB:蓝鲸配置平台是一个面向资产及应用的企业级配置管理平台。

Contributing

如果你有好的意见或建议,欢迎给我们提 Issues 或 Pull Requests,为蓝鲸开源社区贡献力量。

License

基于 MIT 协议, 详细请参考LICENSE

Comments
  • 开启celery报错

    开启celery报错

    $ DJANGO_SETTINGS_MODULE=bamboo_engine_playground.settings celery worker -A bamboo_engine_playground.settings -Q er_execute,er_schedule -l info 到这一步报错,ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [WinError 10061] 由于目标计算机积极拒绝,无法连接。. Trying again in 8.00 seconds... (4/100) Traceback (most recent call last): File "d:\program files\python37\lib\site-packages\pipeline\component_framework\base.py", line 88, in new code=new_class.code, version=new_class.version, defaults={"name": new_name, "status": debug} File "d:\program files\python37\lib\site-packages\django\db\models\manager.py", line 82, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "d:\program files\python37\lib\site-packages\django\db\models\query.py", line 564, in update_or_create obj.save(using=self.db) File "d:\program files\python37\lib\site-packages\django\db\models\base.py", line 744, in save force_update=force_update, update_fields=update_fields) File "d:\program files\python37\lib\site-packages\django\db\models\base.py", line 782, in save_base force_update, using, update_fields, File "d:\program files\python37\lib\site-packages\django\db\models\base.py", line 854, in _save_table forced_update) File "d:\program files\python37\lib\site-packages\django\db\models\base.py", line 903, in _do_update return filtered._update(values) > 0 File "d:\program files\python37\lib\site-packages\django\db\models\query.py", line 760, in _update return query.get_compiler(self.db).execute_sql(CURSOR) File "d:\program files\python37\lib\site-packages\django\db\models\sql\compiler.py", line 1471, in execute_sql cursor = super().execute_sql(result_type) File "d:\program files\python37\lib\site-packages\django\db\models\sql\compiler.py", line 1142, in execute_sql cursor.execute(sql, params) File "d:\program files\python37\lib\site-packages\django\db\backends\utils.py", line 99, in execute return super().execute(sql, params) File "d:\program files\python37\lib\site-packages\django\db\backends\utils.py", line 67, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "d:\program files\python37\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers return executor(sql, params, many, context) File "d:\program files\python37\lib\site-packages\django\db\backends\utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "d:\program files\python37\lib\site-packages\django\db\utils.py", line 89, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "d:\program files\python37\lib\site-packages\django\db\backends\utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "d:\program files\python37\lib\site-packages\django\db\backends\sqlite3\base.py", line 383, in execute return Database.Cursor.execute(self, query, params) django.db.utils.OperationalError: database is locked update pipe_example_component component model update component models ERROR:root:database is locked

    opened by miaolaoda007 2
  • Engine and BambooDjangoRuntime ProcessMixin are confusing

    Engine and BambooDjangoRuntime ProcessMixin are confusing

    BambooDjangoRuntime的集合多个mixin 正常来说, 如果我想更改其中某一个功能, 例如Process的某些行为, 例如die 的方法, 我可以

    class BambooDjangoRuntime(
        CustomProcessMixin,
    )
    

    或者

    class CustomeRuntime(BambooDjangoRuntime):
        def die(self, process_id: int):
            do something()
    

    但是经过测试这不符合预期。 因为我发现在pipeline/eri/celery/tasks.py 里面executeschedule 的方法里面:runtime = BambooDjangoRuntime() , runtime 是hardcode的, 即调用Engine(CustomeRuntime()).run_pipeline(pipeline) 时不会调用CustomeRuntime().die方法的。

    文档没有特别说明, 另外一点是在自编写的component 里面, 如果在自定义组件的实例里面也无法保存属性, 只能通过data来传递。 因为每一次自定义component的schedule的调用都是一个新对象。

    lastly, 能否将类似ProcessMixin或者一些其他类似的update 方法:e.g Process.objects.filter(id=process_id).update(suspended=True, suspended_by=by) 改为

    obj = Process.get(id=process_id)
    obj.suspended=True
    obj.suspended_by = by
    obj.save()
    

    这用用户可以利用Django post_save的signal 去做一些自定义的行为。 例如我希望Process die的时候可以回调推送数据到websocket。

    opened by Randix6644 0
  • 【单元测试】单测尚未覆盖Redis Sentinel 独立密码

    【单元测试】单测尚未覆盖Redis Sentinel 独立密码

    https://github.com/TencentBlueKing/bamboo-engine/blob/fd3ab84d43e81f04473c29d31765221a7965be8a/runtime/bamboo-pipeline/pipeline/tests/test_apps.py#L45

    一个小问题~

    opened by CohleRustW 0
  • 流程节点输出没有name域,严重影响调试

    流程节点输出没有name域,严重影响调试

    在代码中输出流程执行结果。

    result = api.get_pipeline_states(runtime=runtime, root_id=pipeline["id"])
    

    print(result.data) 在输出中缺失name条目,直接导致无法详细调试。

    , 'ed8ca0822e6c3490192bee69c4f7c1e76': {'id': 'ed8ca0822e6c3490192bee69c4f7c1e76', 'state': 'FINISHED', 'root_id:': 'pe20b2e4e17674134924382e1985ba4f5', 'parent_id': 'pe20b2e4e17674134924382e1985ba4f5', 'version': 'vb8feada2bf0643e193bbd4d0dd5bb133', 'loop': 1, 'retry': 0, 'skip': False, 'error_ignorable': False, 'error_ignored': False, 'created_time': datetime.datetime(2022, 5, 22, 5, 10, 37, 49657, tzinfo=), 'started_time': datetime.datetime(2022, 5, 22, 5, 10, 37, 49196, tzinfo=), 'archived_time': datetime.datetime(2022, 5, 22, 5, 10, 37, 113250, tzinfo=), 'children': {} } , 'e57a42788ab124478b895ace9229ce208': {'id': 'e57a42788ab124478b895ace9229ce208', 'state': 'FAILED', 'root_id:': 'pe20b2e4e17674134924382e1985ba4f5', 'parent_id': 'pe20b2e4e17674134924382e1985ba4f5', 'version': 'vc93a7f74531445fc9065a39c505be37b', 'loop': 1, 'retry': 0, 'skip': False, 'error_ignorable': False, 'error_ignored': False, 'created_time': datetime.datetime(2022, 5, 22, 5, 10, 37, 147393, tzinfo=), 'started_time': datetime.datetime(2022, 5, 22, 5, 10, 37, 147139, tzinfo=), 'archived_time': datetime.datetime(2022, 5, 22, 5, 10, 37, 166506, tzinfo=), 'children': {}

    question 
    opened by bghuang 2
  • 第一次执行会出现进程无法找到的问题,pipeline.eri.models.Process.DoesNotExist

    第一次执行会出现进程无法找到的问题,pipeline.eri.models.Process.DoesNotExist

    2022-03-22 17:03:48,144: ERROR/ForkPoolWorker-7] [p153b291216b64dbf93aab8d7bc79dfac]execute node(e9d1bf39b2ed347d6826feea3ae14aa55) prepare fail Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/bamboo_engine/engine.py", line 566, in execute process_info = self.runtime.get_process_info(process_id) File "/usr/local/lib/python3.6/site-packages/bamboo_engine/metrics.py", line 81, in _wrapper return func(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/pipeline/eri/imp/process.py", line 107, in get_process_info raise Process.DoesNotExist("Process with id({}) does not exist".format(process_id)) pipeline.eri.models.Process.DoesNotExist: Process with id(663) does not exist

    help wanted 
    opened by MRongM 1
  • pipline运维工具

    pipline运维工具

    背景:在pipeline中有时会由于基础组件(如网络、DB、mq)或pipeline组件(如程序BUG)等原因导致pipeline异常,而为了避免打扰用户,期望有相应的运营工具可以辅助排查或自愈

    期望: pipeline检测工具:可以对某一个pipeline实例进行检测,了解异常原因 pipeline修复工具:可以对异常pipeline异常辅助处理(如有影响需要有手动确认操作),将pipeline恢复到某一节点

    type/feature 
    opened by benero 0
Releases(bamboo-pipeline-v3.24.2)
  • bamboo-pipeline-v3.24.2(Dec 15, 2022)

    What's Changed

    Other Changes

    • minor: bamboo-pipeline bumps to 3.24.2 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/128

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.6.1...bamboo-pipeline-v3.24.2

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.6.1(Dec 15, 2022)

    What's Changed

    • minor: 文档demo更新 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/126
    • optimization: 网关表达式解析报错优化 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/127

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.24.1...bamboo-engine-v2.6.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.24.1(Nov 29, 2022)

    What's Changed

    Other Changes

    • 修复节点状态清除完成时间失败问题 & 节点输入支持pickle序列化 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/125

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.24.0...bamboo-pipeline-v3.24.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.24.0(Nov 23, 2022)

    What's Changed

    Other Changes

    • feature: pipeline新增get_batch_data接口实现 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/123
    • minor: version update by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/124

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.6.0...bamboo-pipeline-v3.24.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.6.0(Nov 23, 2022)

    What's Changed

    Other Changes

    • feature: eri新增批量获取节点数据接口 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/122

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.23.1...bamboo-engine-v2.6.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.23.1(Nov 14, 2022)

    What's Changed

    Other Changes

    • release bamboo-pipeline v3.23.1 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/121

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.5.3...bamboo-pipeline-v3.23.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.5.3(Nov 14, 2022)

    What's Changed

    Optimizations 🦾

    • optimization: 节点重试支持配置变量渲染豁免 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/120

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.23.0...bamboo-engine-v2.5.3

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.23.0(Sep 28, 2022)

    What's Changed

    Exciting New Features 🎉

    eri celery task add receive log by @normal-wls in #111

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.5.2...bamboo-pipeline-v3.23.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.5.2(Sep 26, 2022)

    What's Changed

    Exciting New Features 🎉

    • 新增监控指标 by @hanshuaikang in https://github.com/TencentBlueKing/bamboo-engine/pull/112

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.22.0...bamboo-engine-v2.5.2

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.22.0(Aug 9, 2022)

    What's Changed

    Exciting New Features 🎉

    • 新增pipeline_engine_admin引擎管理端 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/105

    Other Changes

    • 文档更新 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/107

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.21.1...bamboo-pipeline-v3.22.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.21.1(Jul 19, 2022)

    What's Changed

    Other Changes

    • minor: release bamboo-pipeline 3.21.1 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/104

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.5.1...bamboo-pipeline-v3.21.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.5.1(Jul 19, 2022)

    What's Changed

    Fixed Bugs 👾

    • bugfix: 修复重试节点时 loop 计数重置的问题 by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/102

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.21.0...bamboo-engine-v2.5.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.21.0(Jul 4, 2022)

    What's Changed

    Other Changes

    • bamboo-pipeline release 3.21.0 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/101

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.5.0...bamboo-pipeline-v3.21.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.5.0(Jul 1, 2022)

    What's Changed

    Exciting New Features 🎉

    • subprocess support inputs preview and inputs execution data record by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/99

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.20.0...bamboo-engine-v2.5.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.20.0(Jun 7, 2022)

    What's Changed

    Fixed Bugs 👾

    • 修复条件分支flow_id不存在condition中时报错问题 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/94

    Optimizations 🦾

    • 周期任务修改时增加是否检查enable状态开关 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/95

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.19.0...bamboo-pipeline-v3.20.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.19.0(May 31, 2022)

    What's Changed

    Exciting New Features 🎉

    • bamboo-engine upgrade to 2.4.0 by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/93

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.4.0...bamboo-pipeline-v3.19.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.4.0(May 31, 2022)

    What's Changed

    Exciting New Features 🎉

    • add pre post process duration and task claim delay metrics by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/89

    Optimizations 🦾

    • add task header to task message(ERI version 7.0.0) by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/91

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.18.0...bamboo-engine-v2.4.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.18.0(May 19, 2022)

    What's Changed

    Exciting New Features 🎉

    • upgrade bamboo-engine to 2.3.0 by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/88

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.3.0...bamboo-pipeline-v3.18.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.3.0(May 19, 2022)

    What's Changed

    Exciting New Features 🎉

    • add pre_service_execute, pre_service_schedule signal by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/83
    • update context value api by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/86
    • exclusive gateway & conditional parallel gateway support default branch by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/84

    Optimizations 🦾

    • optimization: make some eri model field blankable by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/82

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.17.1...bamboo-engine-v2.3.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.14.2(Apr 19, 2022)

    What's Changed

    Exciting New Features 🎉

    • S3导入模块支持virtual-path模式 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/81

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.14.1...bamboo-pipeline-v3.14.2

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.17.1(Apr 14, 2022)

    What's Changed

    Exciting New Features 🎉

    • bamboo-engine dep bump to 2.2.1 by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/80

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.2.1...bamboo-pipeline-v3.17.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.2.1(Apr 14, 2022)

    What's Changed

    Exciting New Features 🎉

    • feature: S3 importer支持virtual_path模式 by @normal-wls in https://github.com/TencentBlueKing/bamboo-engine/pull/79

    Optimizations 🦾

    • minor: eri task module add task id relate log by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/78

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.17.0...bamboo-engine-v2.2.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.17.0(Mar 29, 2022)

    What's Changed

    Exciting New Features 🎉

    • bamboo-engine upgrade 2.2.0 by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/77

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.2.0...bamboo-pipeline-v3.17.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.2.0(Mar 29, 2022)

    What's Changed

    Exciting New Features 🎉

    • 节点状态改变时,可配置是否发送post_set_state信号 by @wheel-w in https://github.com/TencentBlueKing/bamboo-engine/pull/75

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.16.1...bamboo-engine-v2.2.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.16.1(Mar 23, 2022)

    What's Changed

    Optimizations 🦾

    • remove django-celery-results deps by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/73

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.16.0...bamboo-pipeline-v3.16.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.16.0(Mar 22, 2022)

    What's Changed

    Exciting New Features 🎉

    • bamboo-pipeline upgrade bamboo-engine to 2.1.0 by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/69

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-engine-v2.1.0...bamboo-pipeline-v3.16.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.1.0(Mar 22, 2022)

    What's Changed

    Exciting New Features 🎉

    • interrupt event handle support by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/63

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.15.1...bamboo-engine-v2.1.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.15.1(Mar 10, 2022)

    What's Changed

    Optimizations 🦾

    • optimization: make installed apps list lighter by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/65

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.15.0...bamboo-pipeline-v3.15.1

    Source code(tar.gz)
    Source code(zip)
  • bamboo-pipeline-v3.15.0(Mar 7, 2022)

    What's Changed

    Exciting New Features 🎉

    • engine interrupter by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/52

    Fixed Bugs 👾

    • Gateway match share check fix by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/57

    Other Changes

    • document typo by @OrenZhang in https://github.com/TencentBlueKing/bamboo-engine/pull/56
    • 定期清理v2版本引擎日志 by @wheel-w in https://github.com/TencentBlueKing/bamboo-engine/pull/58

    New Contributors

    • @OrenZhang made their first contribution in https://github.com/TencentBlueKing/bamboo-engine/pull/56

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.14.1...bamboo-engine-v2.0.0

    Source code(tar.gz)
    Source code(zip)
  • bamboo-engine-v2.0.0(Mar 7, 2022)

    What's Changed

    Exciting New Features 🎉

    • engine interrupter by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/52

    Fixed Bugs 👾

    • Gateway match share check fix by @homholueng in https://github.com/TencentBlueKing/bamboo-engine/pull/57

    Other Changes

    • document typo by @OrenZhang in https://github.com/TencentBlueKing/bamboo-engine/pull/56
    • 定期清理v2版本引擎日志 by @wheel-w in https://github.com/TencentBlueKing/bamboo-engine/pull/58

    New Contributors

    • @OrenZhang made their first contribution in https://github.com/TencentBlueKing/bamboo-engine/pull/56

    Full Changelog: https://github.com/TencentBlueKing/bamboo-engine/compare/bamboo-pipeline-v3.14.1...bamboo-engine-v2.0.0

    Source code(tar.gz)
    Source code(zip)
Owner
腾讯蓝鲸
腾讯蓝鲸
Python library for generating CycloneDX SBOMs

Python Library for generating CycloneDX This CycloneDX module for Python can generate valid CycloneDX bill-of-material document containing an aggregat

CycloneDX SBOM Standard 31 Dec 16, 2022
Projeto de Jogo de dados em Python 3 onde é definido o lado a ser apostado e número de jogadas, pontuando os acertos e exibindo se ganhou ou perdeu.

Jogo de DadoX Projeto de script que simula um Jogo de dados em Python 3 onde é definido o lado a ser apostado (1, 2, 3, 4, 5 e 6) ou se vai ser um núm

Estênio Mariano 1 Jul 10, 2021
A simple calculator that can add, subtract, multiply or divide depending upon the input from the user

Calculator A simple calculator that can add, subtract, multiply or divide depending upon the input from the user. In this example, we should have the

Jayesh Mali 1 Dec 27, 2021
A common, beautiful interface to tabular data, no matter the format

rows No matter in which format your tabular data is: rows will import it, automatically detect types and give you high-level Python objects so you can

Álvaro Justen 834 Jan 03, 2023
Repositório do Projeto de Jogo da Resília Educação.

Jogo da Segurança das Indústrias Acme Descrição Este jogo faz parte do projeto de entrega do primeiro módulo da Resilia Educação, referente ao curso d

Márcio Estevam da Silva 2 Apr 28, 2022
Hera is a Python framework for constructing and submitting Argo Workflows.

Hera is an Argo Workflows Python SDK. Hera aims to make workflow construction and submission easy and accessible to everyone! Hera abstracts away workflow setup details while still maintaining a cons

argoproj-labs 241 Jan 02, 2023
Stocks Trading News Alert Using Python

Stocks-Trading-News-Alert-Using-Python Ever Thought of Buying Shares of your Dream Company, When their stock price got down? But It is not possible to

Ayush Verma 3 Jul 29, 2022
Python interface to ISLEX, an English IPA pronunciation dictionary with syllable and stress marking.

pysle Questions? Comments? Feedback? Pronounced like 'p' + 'isle'. An interface to a pronunciation dictionary with stress markings (ISLEX - the intern

Tim 38 Dec 14, 2022
Never get kicked for inactivity ever again!

FFXIV AFK Bot Tired of getting kicked from games due to inactivity? This Bot will make random movements in random intervals to prevent you from gettin

5 Jan 12, 2022
🏃 Python3 Solutions of All Problems in GKS 2022 (In Progress)

GoogleKickStart 2022 Python3 solutions of Google Kick Start 2022. Solution begins with * means it will get TLE in the largest data set. Total computat

kamyu 38 Dec 29, 2022
An end-to-end Python-based Infrastructure as Code framework for network automation and orchestration.

Nectl An end-to-end Python-based Infrastructure as Code framework for network automation and orchestration. Features Data modelling and validation. Da

Adam Kirchberger 15 Oct 14, 2022
A numbers check python package

A numbers check python package

Fayas Noushad 3 Nov 28, 2021
IG Trading Algos and Scripts in Python

IG_Trading_Algo_Scripts_Python IG Trading Algos and Scripts in Python This project is a collection of my work over 2 years building IG Trading Algorit

191 Oct 11, 2022
Traductor de webs desde consola usando el servicio de Google Traductor.

proxiGG Traductor de webs desde consola usando el servicio de Google Traductor. Se adjunta el código fuente para Python3 y un binario compilado en C p

@as_informatico 2 Oct 20, 2021
a url shortener with fastapi and tortoise-orm

fastapi-tortoise-orm-url-shortener a url shortener with fastapi and tortoise-orm

19 Aug 12, 2022
A one place destination to check whatever is trending on the top social and news websites at present.

UpTrend A one place destination to check whatever is trending on the top social and news websites at present. Explore the docs » View Demo · Report Bu

Google Developer Student Clubs - JGEC 10 Oct 03, 2021
Vehicle Identification Speed Detection (VISD) extracts vehicle information like License Plate number, Manufacturer and colour from a video and provides this data in the form of a CSV file

Vehicle Identification Speed Detection (VISD) extracts vehicle information like License Plate number, Manufacturer and colour from a video and provides this data in the form of a CSV file. VISD can a

6 Feb 22, 2022
A simple PID tuner and simulator.

PIDtuner-V0.1 PlantPy PID tuner version 0.1 Features Supports first order and ramp process models. Supports Proportional action on PV or error or a sp

3 Jun 23, 2022
Width-customizer-for-streamlit-apps - Width customizer for Streamlit Apps

🎈 Width customizer for Streamlit Apps As of now, you can only change your Strea

Charly Wargnier 5 Aug 09, 2022
Functions to analyze Cell-ID single-cell cytometry data using python language.

PyCellID (building...) Functions to analyze Cell-ID single-cell cytometry data using python language. Dependecies for this project. attrs(=21.1.0) fo

0 Dec 22, 2021