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

GitHub Actions找不到package.json及目录切换失败问题求助

GitHub Actions部署Auth0配置的错误分析与修复

问题根源

  • Job之间环境完全隔离:GitHub Actions里每个Job都是在全新的独立runner实例中运行的,Job之间不会共享任何文件或环境状态。你在build Job里拉取了代码,但install和deploy Job根本没执行代码拉取操作,导致这两个Job的环境里没有任何仓库文件。
  • 对项目目录结构的误解:你的项目根目录就有package.json,根本不存在./auth0_infrastructure这个目录,切换目录的操作完全是多余的错误操作。
  • 不必要的Job拆分:你误以为单个Job里的步骤是并行执行的,但实际上单个Job内的步骤是串行依次执行的,拆分多个Job反而制造了环境隔离的问题,这个场景下完全没必要拆分。

具体错误解析

  1. 切换目录失败
    在deploy Job里,你尝试切换到./auth0_infrastructure,但这个Job既没拉取仓库代码,项目本身也没有这个目录,自然会提示找不到目录的错误。

  2. npm找不到package.json
    移除切换目录步骤后,deploy Job依然没有拉取仓库代码,runner环境里根本不存在package.json文件,所以npm会抛出ENOENT错误。

修正后的工作流配置

把所有步骤合并到单个Job中,确保代码拉取、环境准备、依赖安装、部署在同一个环境中完成:

name: Deploy authn configuration to prod
on:
  push:
    branches: [main]
  workflow_dispatch:

jobs:
  deploy-auth0:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取仓库代码
        uses: actions/checkout@v2
      
      - name: 安装Node.js环境
        uses: actions/setup-node@v1
        with:
          node-version: "14.x"
      
      - name: 全局安装Auth0 Deploy CLI
        run: npm install -g auth0-deploy-cli
      
      - name: 部署到生产租户
        env:
          AUTH0_CLIENT_SECRET: ${{ secrets.PROD_AUTH0_CLIENT_SECRET }}
        run: npm run import:staging

补充说明

  • 单个Job内的步骤会按顺序执行,前一步成功后才会启动下一步,完全符合你的部署流程逻辑。
  • 如果是复杂场景确实需要拆分Job,得用actions/upload-artifact和actions/download-artifact在Job之间传递文件,但这个场景下完全不需要这么做。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:18:20