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
腾讯蓝鲸
腾讯蓝鲸
Extended functionality for Namebase past their web UI

Namebase Extended Extended functionality for Namebase past their web UI.

RunDavidMC 12 Sep 02, 2022
Just another sentiment wrapper.

sentimany Just a simple sentiment tool. It just grabs a set of pre-made sentiment models that you can quickly use to attach sentiment scores to text.

vincent d warmerdam 15 Dec 27, 2022
Simply create JIRA releases based on your github releases

Simply create JIRA releases based on your github releases

8 Jun 17, 2022
Pomodoro timer by the Algodrip team!

PomoDrip 🍅 Pomodoro timer by the Algo Drip team! To-do: Create the script for the pomodoro timer Design the front-end of the program (Flask or Javasc

Algodrip 3 Sep 12, 2021
Nmap script to detect a Microsoft Exchange instance version with OWA enabled.

Nmap script to detect a Microsoft Exchange instance version with OWA enabled.

Luciano Righetti 27 Nov 17, 2022
Hashcrack - A non-object oriented open source, Software for Windows/Linux made in Python 3

Multi Force This project is a non-object oriented open source, Software for Wind

Radiationbolt 3 Jan 02, 2023
Calculatrix is a project where I'll create plenty of calculators in a lot of differents languages

Calculatrix What is Calculatrix ? Calculatrix is a project where I'll create plenty of calculators in a lot of differents languages. I know this sound

1 Jun 14, 2022
use Notepad++ for real-time sync after python appending new log text

FTP远程log同步工具 使用Notepad++配合来获取实时更新的log文档效果 适用于FTP协议的log远程同步工具,配合MT管理器开启FTP服务器使用,通过Notepad++监听文本变化,更便捷的使用电脑查看方法注入打印后的信息 功能 过滤器 对每行要打印的文本使用回调函数筛选,支持链式调用

Liuhaixv 1 Oct 17, 2021
A very simple boarding app with DRF

CRUD project with DRF A very simple boarding app with DRF. About The Project 유저 정보를 갖고 게시판을 다루는 프로젝트 입니다. Version Python: 3.9 DB: PostgreSQL 13 Django

1 Nov 13, 2021
Kunai Shitty Raider Leaked LMFAO

Kunai-Raider-Leaked Kunai Shitty Raider Leaked LMFA

5 Nov 24, 2021
ROS Foxy + Raspi + Adafruit BNO055

ROS Foxy + Raspi + Adafruit BNO055

Ar-Ray 3 Nov 04, 2022
Lagrange Interpolation Method-Python

Lagrange Interpolation Method-Python The Lagrange interpolation formula is a way to find a polynomial, called Lagrange polynomial, that takes on certa

Motahare Soltani 2 Jul 05, 2022
Construção de um jogo Dominó na linguagem python com base em algoritmos personalizados.

Domino (projecto-python) Construção de um jogo Dominó na linguaguem python com base em algoritmos personalizados e na: Monografia apresentada ao curso

Nuninha-GC 1 Jan 12, 2022
Lightweight library for accessing data and configuration

accsr This lightweight library contains utilities for managing, loading, uploading, opening and generally wrangling data and configurations. It was ba

appliedAI Initiative 7 Mar 09, 2022
Script that creates graphical representations of Julia an Mandelbrot sets.

Julia and Mandelbrot Picture Maker This simple functions create simple plots of the Julia and Mandelbrot sets. The Julia set require the important par

Juan Riera Gomez 1 Jan 10, 2022
Reverse the infix string. Note that while reversing the string you must interchange left and right parentheses

Reverse the infix string. Note that while reversing the string you must interchange left and right parentheses. Obtain the postfix expression of the infix expression Step 1.Reverse the postfix expres

Sazzad Hossen 1 Jan 04, 2022
Print 'text color' and 'text format' on Term with Python

term-printer Print 'text color' and 'text format' on Term with Python ※ It may not work depending on the OS and shell used. PIP $ pip install term-pri

ななといつ 10 Nov 12, 2022
Simple tools to make/dump CPC+ CPR cartridge files

Simple tools to make/dump CPC+ CPR cartridge files mkcpr.py: make a CPR file from files (one chunk per file); see notes cprdump.py: dump the chunks of

Juan J. Martínez 3 May 30, 2022
🎅🏻 Helping santa understand ✨ python ✨

☃️ Advent of code 2021 ☃️ Helping santa understand ✨ python ✨

Fluffy 2 Dec 25, 2021
A slapdash script to solve Wordle or Absurdle automatically

A slapdash script to solve Wordle or Absurdle automatically

Michael Anthony 1 Jan 19, 2022