为firebase安排入口点.github工作流中的Json文件



React项目将被托管在Firebase托管服务上。我按照说明成功地部署了我想要的版本。它还询问我是否想将项目与Github Workflow结合起来。这意味着它将pull项目的main分支和merge(自动部署)它到firebase,构建并完成部署。
这里的问题是React文件夹在./frontend目录中,而不是在根目录中。第一个弹出的错误是:

Verifying firebase.json exists
Error: firebase.json file not found. If your firebase.json file is not in the root of your repo, edit the entryPoint option of this GitHub action.

Ass建议说我在...-merge.yml...pull-request.yml文件中添加了entrypoint变量:

------
- uses: actions/checkout@v2
- run: cd ./frontend; npm ci && npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
entrypoint: /frontend
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_LIFT_OS }}"
------

最近收到上面的错误,说目录不存在:

Error changing to directory /frontend: Error: ENOENT: no such file or directory, chdir '/home/runner/work/<project-name>/<project-name>' -> '/frontend'

我希望找到名为frontend的文件夹,该文件夹具有React项目,并且位于根目录中,没有错误。如何正确定位?

关于文档,您应该使用entryPoint而不是entrypoint。您还可以查看添加entryPoint选项的Pull Request和issue。在那里你可以找到关于符号的信息:

选择的名称entryPoint感觉类似于工作流文件entrypoint,它不能与JS动作一起工作,但也维护驼峰大小写来匹配这个动作的其他选项。

你正在使用的entrypoint是GitHub入口点的docker命令,是为了与docker容器操作使用,但你也可以使用它与JavaScript的动作,不定义任何输入。

还要检查entryPoint的路径。默认设置为.,这意味着您的repo的根目录。所以你应该使用./frontend而不是/frontend。使用/,该操作将检查运行器根目录下的文件夹,使用./检查repo级别上的文件夹。下面是一个例子:

$ pwd
/Users/{USER}
$ cd ./Library
$ pwd
/Users/{USER}/Library
$ cd /Library
$ pwd
/Library

相关内容

最新更新