微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CircleCI权限被拒绝打开用于Firebase部署的firebase-tools.json

如何解决CircleCI权限被拒绝打开用于Firebase部署的firebase-tools.json

我正在使用Firebase托管我的个人网站,并希望集成CircleCI以实现更快的集成。但是,我在部署步骤中收到此错误

注意 在deploy命令之前添加sudo也会导致构建失败

/home/circleci/project/node_modules/configstore/index.js:52
          throw error;
          ^

Error: EACCES: permission denied,open '/home/circleci/.config/configstore/firebase-tools.json'
You don't have access to this file.

以下是我项目的yaml配置:

---
commands:
  restore_cache_cmd:
    description: "Restore cached npm install"
    steps:
      - restore_cache:
          key: 'dependency-cache-{{checksum "package.json"}}'
  save_cache_cmd:
    description: "Saving npm install"
    steps:
      - save_cache:
          key: 'dependency-cache-{{ checksum "package.json"}}'
          paths:
            - "./node_modules"
  update:
    description: "Installing project's dependencies"
    steps:
      - checkout
      - restore_cache_cmd
      - run: sudo npm i -g npm@latest
      - run: sudo npm i
      - save_cache_cmd
  build_deploy:
    description: "Building project"
    steps:
      - run:
          name: Build
          command: sudo npm run build
      - run:
          name: Deploy
          command: ./node_modules/.bin/firebase deploy --token=$FIREBASE_DEPLOY_TOKEN -- only hosting
executors:
  docker-executor:
    docker:
      - image: "cimg/node:12.14.1"
jobs:
  build_site:
    executor: docker-executor
    working_directory: ~/Darryls-Personal-Site
    steps:
      - update
      - build_deploy
version: 2.1
workflows:
  build_site:
    jobs:
      - build_site:
          filters:
            branches:
              only: master

我已经通过其他问题完成的步骤:

  • 使用firebase login:ci获取刷新令牌,并将其放入CircleCI项目环境中的环境变量中
  • 使用npm install --save-dev firebase-tools

解决方法

我认为问题在于您使用npm来运行所有sudo命令,除了firebase deploy命令。 您绝对应该使用当前用户而不是超级用户运行所有内容。 在official tutorials中,您会看到sudo没有任何运行,除了非常特殊的情况。

此外,您可以使用./node_modules/.bin/firebase deploy来代替npx run firebase deploy,它首先要在本地node_modules中查找,然后在全局中查找。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?