GitHub Actions执行报错:无法找到指定工作目录
问题排查与解决:GitHub Actions工作目录不存在错误
错误原因分析
报错信息:
An error occurred trying to start process '/usr/bin/bash' with working directory '/home/runner/work/myproject-api/myproject-api/app'. No such file or directory
核心问题是全局默认工作目录设置与实际文件结构不匹配:
- 你在
defaults.run中全局配置了working-directory: app,这会强制所有run步骤切换到app目录执行 - 但你的仓库根目录大概率不存在
app文件夹,或者在执行kubectl get pods这个run步骤时,当前路径下没有app目录 - 另外,工作流里重复的
Checkout步骤完全没必要,只会浪费执行资源
解决方案
方案1:移除全局默认工作目录(推荐)
如果不是所有run步骤都需要在app目录执行,直接删掉全局的defaults.run配置,只在需要的run步骤单独指定工作目录:
修改后的工作流文件:
name: Docker Build and Push to Docker Hub and ghcr.io on: push: branches: - 'feature/auto-deploy-dev' jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.SECRET }} password: ${{ secrets.TOKEN }} - name: Build and push uses: docker/build-push-action@v2 with: context: . platforms: linux/amd64,linux/arm64 push: true file: Dockerfile tags: | repo/project:latest - name: KubeCtl Command uses: tale/kubectl-action@v1 with: base64-kube-config: ${{ secrets.KUBECONFIG }} - name: Get pods in namespace run: kubectl get pods -n myNamespace
方案2:确认app目录存在并调整配置
如果确实需要全局使用app目录,先确保仓库根目录下存在app文件夹,同时做以下调整:
- 删除重复的
Checkout步骤,一次checkout即可获取完整代码 - 对于不需要在
app目录执行的命令(比如kubectl操作),单独覆盖默认工作目录
修改后的关键部分:
defaults: run: working-directory: app jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 # 确认仓库根目录下存在app子目录,否则此配置无效 - name: Set up QEMU uses: docker/setup-qemu-action@v1 # ...其他步骤保持不变... - name: KubeCtl Command uses: tale/kubectl-action@v1 with: base64-kube-config: ${{ secrets.KUBECONFIG }} - name: Get pods in namespace run: kubectl get pods -n myNamespace working-directory: . # 覆盖全局配置,回到仓库根目录执行
额外优化建议
- 所有步骤添加明确名称,方便后续日志排查问题
- 避免重复执行
Checkout操作,减少不必要的资源消耗 - 只在真正需要的
run步骤指定工作目录,不要全局强制设置
内容的提问来源于stack exchange,提问作者cloudscape-germany
相关产品推荐
相关产品推荐

