如何指定GitHub Actions中CodeQL Action使用缓存的特定CLI版本?
指定CodeQL Action使用缓存的CLI版本方法
问题原因
github/codeql-action/init@v2 默认会使用与Action版本绑定的最新CodeQL CLI版本(如日志中的2.16.3),不会自动识别缓存的旧版本,必须显式指定要使用的CLI版本。
解决方案
在CodeQL init步骤中添加tools参数,明确指定要使用的CodeQL CLI版本,让Action优先读取缓存的版本:
修改后的CodeQL init配置:
- name: 'CodeQL init' uses: github/codeql-action/init@v2 with: ram: 5120 queries: security-extended tools: | codeql-cli:2.13.5
关键说明
- 参数作用:
tools参数用于强制指定CodeQL工具版本,格式为codeql-cli:<具体版本号>。添加后,Action会直接在tool-cache中查找匹配的2.13.5版本,不再尝试拉取默认的最新版。 - 缓存路径验证:从你的调试日志可以看到,缓存的2.13.5版本已经存在于tool-cache中,指定版本后Action会自动命中该缓存,无需调整现有的tool-cache拉取逻辑。
- 环境变量补充:你当前的tool-cache代码中已经通过
core.addPath(cachedPath)添加了可执行文件路径,配合tools参数可以确保Action正确调用缓存的CLI。
效果验证
添加参数后,调试日志会显示Action直接查找指定的2.13.5版本,命中缓存后跳过下载步骤,避免出现HttpError: Not Found的报错。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

