GitHub Actions工作目录下仓库文件位置及前端构建找不到package.json问题问询
GitHub Actions 默认仓库文件存储位置
你拉取的仓库代码默认存储在运行器的${GITHUB_WORKSPACE}环境变量对应路径下,Ubuntu运行器的绝对路径为 /home/runner/work/<仓库名>/<仓库名>,对应你这个项目就是日志里显示的/home/runner/work/infinote/infinote,你的前端package.json完整路径为 /home/runner/work/infinote/infinote/front/package.json。
报错原因
你在env中定义的working-directory: ./front只是自定义环境变量,不会自动修改run命令的执行路径,npm install默认在仓库根目录查找package.json,根目录没有对应文件所以报错。
修复方案
有两种常用修改方式:
方式1:全局指定job的默认工作目录
在job级别配置所有run步骤的默认执行路径,无需逐个步骤配置:
jobs: front: runs-on: ubuntu-latest defaults: run: working-directory: ./front # 所有run命令默认在front目录执行 steps: - uses: actions/checkout@v2 with: ref: master - uses: actions/setup-node@v2 with: node-version: '14' - run: npm install - run: npm install -g @quasar/cli - run: quasar build - uses: actions/upload-artifact@v2 with: name: front path: front/dist/spa # 上传路径从仓库根目录计算,需要加front前缀
方式2:单独给每个需要的run步骤指定工作目录
jobs: front: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: ref: master - uses: actions/setup-node@v2 with: node-version: '14' - run: npm install working-directory: ./front - run: npm install -g @quasar/cli - run: quasar build working-directory: ./front - uses: actions/upload-artifact@v2 with: name: front path: front/dist/spa
内容的提问来源于stack exchange,提问作者WoJ
相关产品推荐
相关产品推荐

