高级功能¶
本文档介绍 sloth-runner 的一些更高级的功能,旨在增强您的开发、调试和配置工作流。
交互式任务运行器¶
对于复杂的工作流,逐个执行任务、检查其输出并决定是继续、跳过还是重试任务可能很有用。交互式任务运行器为调试和开发任务管道提供了一种强大的方法。
要使用交互式运行器,请将 --interactive 标志添加到 sloth-runner run 命令中:
启用后,运行器将在执行每个任务之前暂停并提示您执行操作:
操作:
- 运行: (默认) 继续执行当前任务。
- 跳过: 跳过当前任务并转到执行顺序中的下一个任务。
- 中止: 立即中止整个任务执行。
- 继续: 执行当前任务和所有后续任务,不再提示,从而有效地为余下的运行禁用交互模式。
增强的 values.yaml 模板¶
您可以通过使用 Go 模板语法注入环境变量来使 values.yaml 文件更加动态。这对于提供敏感信息(如令牌或密钥)或特定于环境的配置特别有用,而无需对其进行硬编码。
sloth-runner 将 values.yaml 作为 Go 模板处理,使任何环境变量都可以在 .Env 映射下使用。
示例:
-
创建一个带有模板占位符的
values.yaml文件:注意:如果未设置环境变量,您可以使用# values.yaml api_key: "{{ .Env.MY_API_KEY }}" region: "{{ .Env.AWS_REGION | default "us-east-1" }}"default提供备用值。 -
创建一个使用这些值的 Lua 任务:
-- my_task.sloth local deploy_task = task("deploy") :description("部署应用") :command(function(this, params) log.info("部署到区域: " .. values.region) log.info("使用 API 密钥 (前 5 个字符): " .. string.sub(values.api_key, 1, 5) .. "...") return true, "部署成功。" end) :build() workflow .define("my_group") :description("部署工作流") :version("1.0.0") :tasks({deploy_task}) -
在设置环境变量的情况下运行任务:
输出:
输出将显示环境变量中的值已正确替换: