linkorb / pipeline
管道处理库
v1.7.0
2018-06-11 15:52 UTC
Requires
- symfony/console: ~2.7
- symfony/dotenv: v3.3.0-RC1
- symfony/process: ~2.7
- symfony/yaml: ~2.7
README
Pipeline 是一个库和 CLI 工具,用于加载可编程管道,执行作业并获取每个阶段的详细结果以供报告/调试。
概念
- 管道:一系列阶段的顺序列表
- 阶段:管道内具有唯一名称的命令模板
- 作业:将在管道上执行的作业,可选的输入变量集
- 作业结果:已在管道上执行的作业的输出,包含状态和管道中每个阶段的 StageResult
- 阶段结果:执行的精确命令,它的退出代码,stdout 和 stderr。
CLI 示例
加载一个管道 YML 文件并使用输入变量 topic=technology
执行它
bin/pipeline run examples/bbc-news-demo.pipeline.yml -d topic=technology
加载一个管道 YML 文件并从 STDIN 获取输入执行它
bin/pipeline run examples/bbc-news-stdin-demo.pipeline.yml < examples/bbc-news-demo.rss.xml
将作业结果 + 阶段结果的 JSON 结果输出到 result.json
bin/pipeline run -o result.json examples/bbc-news-demo.pipeline.yml -d topic=technology
加载一个管道 YML 文件并有意请求一个不存在的主题以引发错误。这将输出错误。
bin/pipeline run examples/bbc-news-demo.pipeline.yml -d topic=this-topic-does-not-exist
您可以使用 --quiet
来抑制输出和调试输出。您可以与 -o 结合使用来从 .json 文件中读取详细信息。
在任何情况下,管道命令的退出代码都将匹配最后一个阶段结果的退出代码:成功时为 0,失败时为其他值。
库示例
请参阅 examples/example-code.php
了解如何将 pipeline 包用作库。
通过环境变量进行配置
pipeline 将使用管道的输入中的环境变量。这样,您就不需要使用 -d
定义所有必需的变量。
当 pipeline 运行时,它首先检查当前目录中是否存在 .env
文件,并根据其内容更新环境变量。
许可证
MIT。有关详细信息,请参阅许可证文件。
由 LinkORB 工程团队提供
查看我们的其他项目linkorb.com/engineering。
顺便说一下,我们在招聘!