
如何用 dagger check 运行、过滤工作区 Checks 并在首个失败时提前停止【免费下载链接】daggerAutomation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud项目地址: https://gitcode.com/GitHub_Trending/da/daggerdagger check是 Dagger 用来验证项目的命令覆盖测试、lint、类型检查、安全扫描等 Checks。它会把工作区中的 Checks 并行执行任何一个 Check 失败时命令以非零码退出并且文档说明其结果在你的笔记本、CI 和云端保持一致。本文的任务是在一个已初始化的 Dagger 工作区中列出可用的 Checks、按需过滤运行并用--failfast在首个 Check 失败时取消其余 Checks。前提条件已安装 Dagger CLI。安装方式见 Install the Dagger CLI安装后运行dagger version验证dagger version已在项目根目录完成工作区初始化并且至少安装了一个提供 Check 的模块。如果还没有初始化按 Quickstart 操作dagger init该命令会创建一个空的dagger.toml该文件保存整个工作区配置对仓库的所有使用者生效交互式模式下按提示选择模块并选择Install selected非交互模式下会打印需要顺序执行的命令如dagger module recommend。如果init没有推荐到任何模块提示No recommendations可以按项目里实际使用的工具名搜索并安装例如项目使用 ESLint 时dagger module search eslint dagger module install dagger.io/js/eslint安装模块后它会向工作区注册对应的 Check例如安装 Prettier 模块dagger module install dagger.io/js/prettier会创建dagger.toml并添加prettier:check。列出并运行工作区 Checks先确认可用 Checksdagger check -l-l即--list列出当前工作区中所有可用的 Checks。列表中的条目形如prettier:check、eslint:check即模块:check形式。然后运行全部 Checksdagger check默认行为是把工作区里的 Checks 全部并行跑完这样你能一次性看到所有失败项任一 Check 失败时命令以非零退出码结束。Quickstart 给出的完成条件是至少有一个 Check 被运行且所有 Checks 通过。过滤要运行的 Checksdagger check接受位置参数作为过滤 patternCLI 参考 中给出的用法dagger check eslint:* # 运行某个模块下的所有 checks dagger check vitest:test # 运行单个 check dagger check *:lint # 跨模块的 pattern dagger check go:lint # 运行 go:lint check 及其 subchecks反过来排除某些 Checks用--skipstringArray可传多个 pattern跳过匹配 pattern 的 Checksdagger check --skip **e2e # 运行除匹配 **e2e 之外的所有 checks相关的其他选项同一命令下可用-m, --load-module string临时加载一个一次性模块本地路径或 git ref参与运行继承的全局选项-W, --workspace string指定从哪个工作区位置本地路径或 git ref加载例如文档中的示例dagger -W github.com/acme/ws check go:lint--progress string控制进度输出格式auto、plain、tty、dots、logs、report。在首个失败时提前停止默认所有 Checks 都会跑完以便一次看到全部失败。如果希望某个 Check 失败后立刻取消其余 Checks加--failfastdagger check --failfastCLI 参考对--failfast的定义是 Cancel remaining checks on first failure。过滤与提前停止可以组合例如只跑 lint 类 Checks 并在首个失败时停止dagger check *:lint --failfast控制 Check 与 Generator 的类型Generator 可以作为 Check 运行用来确认其输出是最新的。默认两种都会执行用以下选项控制只跑哪一类dagger check --no-generate # 只运行标注了 check 的函数 dagger check --generate # 只运行以 check 方式运行的 generators验证结果与失败处理文档给出的成功/失败判断方式运行失败prettier:check会报告未格式化的文件命令以错误退出这是 Try Dagger 中展示的现象。修复后重跑该文档中的修复方式是运行对应 generator 并应用其 changesetdagger api call prettier write -y然后再次运行dagger check输出显示prettier:checkpassed 即完成。通用退出码只要任一 Check 失败dagger check以非零码退出这在 CI 中可直接作为门禁判断。在 CI 中使用checking 文档给出的 CI 集成方式GitHub Actions# GitHub Actions - run: dagger check由于结果在本机、CI 与云端一致本地验证通过的dagger check可以直接作为 CI 步骤需要时同样可以加--failfast或过滤 pattern。限制与边界--failfast只改变失败时的调度取消其余 Checks不改变各 Check 的判定结果默认行为本身就是把全部失败一次性呈现两者取舍取决于你想一次修完还是逐条修。--skip与位置参数 pattern 作用于 Checks 的筛选-W作用于工作区来源它们解决的是跑哪些不是怎么算通过通过/失败仍以 Check 本身的结果和命令退出码为准。若dagger check -l为空或没有能验证项目的 Check文档建议先安装一个合适的模块再运行而不是直接执行空检查。更多选项与示例见 reference/cli 的 dagger check 章节 与 using/checking。【免费下载链接】daggerAutomation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud项目地址: https://gitcode.com/GitHub_Trending/da/dagger创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考