You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions下$GITHUB_WORKSPACE与$PWD显示为空问题排查

空目录现象的核心原因

出现这个结果的本质是工作流配置遗漏了仓库代码拉取步骤。
GitHub Actions的ubuntu系列runner启动后,会预创建一个临时空目录作为工作区,这个路径会被赋值给环境变量$GITHUB_WORKSPACE,同时也是后续所有run步骤的默认工作目录(即$PWD的指向)。runner启动时不会自动把你仓库里的代码同步到这个目录,必须通过显式的步骤配置才能完成代码拉取。
你现在的配置里,执行ls命令的时候,这个临时目录刚被创建,除了文件系统自带的.、..两个基础目录项,没有其他任何文件,所以两次目录查看操作返回的结果完全一致,没有实际的业务文件。

修复方法

在执行目录查看命令的步骤之前,添加官方提供的代码检出动作即可,修改后的完整工作流配置如下:

name: Debug
on: [push, workflow_dispatch]
jobs:
  debug:
    runs-on: ubuntu-latest
    steps:
     - name: 拉取仓库代码
       uses: actions/checkout@v4

     - name: 打印当前工作目录内容
       run: |
         ls -la $PWD
         ls -la $GITHUB_WORKSPACE

重新触发工作流后,就能正常看到仓库根目录下的所有文件列表。

相关注意事项
  • 默认执行环境里$PWD和$GITHUB_WORKSPACE是完全等价的,两次跑相同的ls命令返回一致结果是正常现象,不是配置出错
  • runner的临时目录不会永久保存文件,当前job执行结束后整个实例都会被回收,所有中途创建的文件都会被清空
  • 如果需要指定某个子目录作为工作目录执行命令,可以在run步骤里加working-directory参数配置,不需要手动写cd切换

内容的提问来源于stack exchange,提问作者Lukasz Dynowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 05:54:03