| name | fallback-tool-check |
| description | 通用命令执行兜底策略:默认先按业务直接执行命令;仅在命令缺失、环境不确定或首次执行失败时,按任务最小范围探测预装软件并安装必需依赖。适用于需要运行 shell 命令的任务。 |
预装软件兜底执行(失败后触发)
默认不做全量环境预检。先执行任务本身,只有在需要时才进入本流程。
快速流程
- 先直接执行业务命令(例如测试、构建、抓取、发布命令)。
- 若失败原因与工具相关(如
command not found、运行时缺依赖),再进入探测。
- 仅探测当前任务必需命令,不做全量扫描:
command -v <cmd1> <cmd2> <cmd3> || true
- 探测存在则继续执行任务;探测缺失且任务必需时再安装。
- 安装后立即回到原任务命令验证结果。
何时允许一次性批量探测
仅在以下情况允许先探测再执行:
- 新机器/新 CI 环境,工具可用性未知。
- 同一任务链预计连续依赖多个工具,且首次失败成本明显更高。
- 用户明确要求先做环境盘点。
缺失软件时直接安装
apt-get update -y && apt-get install -y --no-install-recommends <apt-package>
pip install --no-cache-dir <pip-package>
npm install -g <npm-package>
- 安装范围保持最小,只装当前任务必需的软件。
- 需要多个软件时,按任务链路顺序逐步安装,不做无关预装。
- 安装后立刻回到原任务,避免停在环境配置阶段。
输出要求
- 明确写出本次业务实际使用的软件名。
- 若发生安装,明确写出安装的软件名与安装方式(apt/pip/npm)。
- 仅在必要时补充版本信息,版本以
--version 实测为准。
约束
- 可在空白目录执行,不依赖仓库私有文件。
- 默认不做“每次全量
command -v 验证”。
- 禁止为“看起来可能会用到”而提前安装无关软件。
- 若安装失败,需记录原因并继续尝试可行替代方案;确认无替代方案时,标记该依赖路径受阻并继续推进其它可执行任务,同时说明阻塞原因与解锁条件。
- 不把环境安装扩展成与任务无关的大规模改造。
参考清单
- 预制软件矩阵:
references/prebuilt-software.md