如何解决GitHub Actions Windows Runner工作目录修改无效问题?
问题原因与解决方案
为什么你的设置不生效?
GITHUB_WORKSPACE是只读预定义变量:GitHub Actions会自动初始化这个变量,指向代码仓库的默认检出路径,用户无法通过env字段覆盖它,所以你设置的GITHUB_WORKSPACE: C:\a\不会生效,输出的还是系统默认路径。defaults.run.working-directory仅影响普通run步骤:这个配置只是让你自定义的run命令在指定目录执行,但CodeQL Action内部逻辑依赖github.workspace预定义变量,不会读取该配置来定位代码或生成数据库。
正确的解决方法
要让CodeQL使用C盘空间,需将代码检出到C盘目录,并让CodeQL在该路径下工作,具体配置如下:
1. 把代码检出到C盘指定路径
使用actions/checkout的path参数,将代码直接拉取到C盘目标目录:
- uses: actions/checkout@v4 with: path: C:\a\your-project # 替换为你需要的C盘路径
2. 配置CodeQL使用C盘目录
在CodeQL初始化和分析步骤中,指定数据库存储目录到C盘,或直接指定工作目录:
jobs: analyze: name: Analyze runs-on: windows-latest permissions: actions: read contents: read security-events: write steps: - uses: actions/checkout@v4 with: path: C:\a\your-project # 初始化CodeQL时指定数据库存储到C盘 - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: 'java' # 替换为你的项目语言,如csharp、javascript等 database-dir: C:\a\codeql-databases # 数据库将存放在C盘该目录 # 项目构建步骤(按需添加,需切换到C盘的代码目录) - name: Build project working-directory: C:\a\your-project run: | # 写入你的构建命令,如msbuild、mvn等 # 执行CodeQL分析,指定数据库目录 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 with: database-dir: C:\a\codeql-databases
额外说明
如果你的项目无需构建步骤,也可在CodeQL初始化时通过working-directory参数指定代码所在的C盘路径:
- name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: 'javascript' working-directory: C:\a\your-project
内容的提问来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

