GitHub Action 无法构建 firebase 应用程序 w9jds/firebase-action

Posted

技术标签:

【中文标题】GitHub Action 无法构建 firebase 应用程序 w9jds/firebase-action【英文标题】:GitHub Action failes building firebase app w9jds/firebase-action 【发布时间】:2020-10-11 08:06:51 【问题描述】:

我可以在本地命令行中使用 firebase deploy 部署我的 friebase 应用程序 (https://github.com/Luuuuuis/profile-page),但是当我推送它时它一直失败 -> 没有代码错误。

这是我的 GitHub 操作:https://github.com/Luuuuuis/profile-page/blob/master/.github/workflows/main.yml 并且在尝试构建时失败。 https://github.com/Luuuuuis/profile-page/runs/792416930?check_suite_focus=true

这是我得到的错误:

Error: EACCES: permission denied, open '/usr/local/lib/node_modules/firebase-tools/node_modules/storage-engine/lib/compatibility/index.js' at Object.openSync (fs.js:443:3) at Object.writeFileSync (fs.js:1194:35) at /usr/local/lib/node_modules/firebase-tools/node_modules/storage-engine/lib/compatibility/detect.js:35:15 at Object. (/usr/local/lib/node_modules/firebase-tools/node_modules/storage-engine/lib/compatibility/detect.js:45:3) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Module.require (internal/modules/cjs/loader.js:692:17) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/firebase-tools/node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64") npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! storage-engine@3.0.7 postinstall: node ./compatibility/detect.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the storage-engine@3.0.7 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2020-06-21T10_52_59_937Z-debug.log The command '/bin/sh -c npm install -g firebase-tools' returned a non-zero code: 1 ##[error]Docker build failed with exit code 1

昨天已经成功了,但是今天试了好几次都没成功。我的行为有问题吗?

【问题讨论】:

我也遇到了同样的问题,昨天还好好的,现在不行了。期待在那里看到答案...... firebase-action 正在使用的容器的权限似乎有些问题。有人已经在他们的 Github 页面上报告了this issue。 哦,好吧,这是他们的错。好的,那我得等了 更多用户似乎受到了影响@see github.com/firebase/firebase-tools/issues/2383 和 github.com/w9jds/firebase-action/issues/46 【参考方案1】:

尝试使用 --unsafe-perm 标志或配置环境变量: NPM_CONFIG_USER 根

【讨论】:

【参考方案2】:
EACCES: permission denied

您应该尝试使用sudo 执行它

【讨论】:

但是如何在 github 操作中使用 sudo? 我明白了。全局安装软件包似乎有问题。也许你找到了一种在没有 -g 的情况下在本地安装时使用 firebase-tools 的方法。我在这里找到了一些其他方法,但如果它们与 github 操作一起使用,我会发现:docs.npmjs.com/… 但是为什么昨天还有效呢?当我使用这个预制动作时,我不明白我应该如何在没有 -g 的情况下运行它。做这个动作的家伙 -g 会很好吗?【参考方案3】:

这更适合其他人来看这个问题,也许是相关的,但不是确切的问题。对于特定的原始问题,这些问题似乎是一个火力问题。但是,如果像我一样,您在权限方面遇到了类似的问题(正如 phyyyl 的回答中所指出的那样),这就是我修复它的方法。

为了绕过权限,我使用了the npm docs 中的解释。所以安装时不要使用-g 标志并使用npx,它会识别出安装的程序不是全局安装的。我使用 netlify,所以不确定等效的 firebase 是什么。但我希望这会有所帮助。

deploy:
    image: node:latest
    stage: deploy
    before_script:
        - npm install netlify-cli
    script:
        - npx netlify deploy --dir public

【讨论】:

以上是关于GitHub Action 无法构建 firebase 应用程序 w9jds/firebase-action的主要内容,如果未能解决你的问题,请参考以下文章

GitHub Action 相互构建环境变量

在 GitHub Action Workflow 中安装 GitHub 存储库

再探CI,Github调戏Action手记——自动构建并发布到另一仓库

Github Action:使用 kubectl 创建命名空间以部署构建

Github action bot 推送到 gh-pages 导致页面构建失败

dotnet 通过 GitHub 的 Action 辅助下载国外资源文件的离线下载方法