gpt4 book ai didi

firebase - 如何在 GitHub 操作中将工作目录添加到部署

转载 作者:行者123 更新时间:2023-12-03 16:12:35 31 4
gpt4 key购买 nike

我最近进入了 GitHub 操作,所以我想做的是在推送完成后将我的 react 项目托管在 firebase 中。我在这个 CI/CD 过程中使用了 GitHub 操作。这是我现在拥有的 main.yml。

name: Build and Deploy
on:
push:
branches:
- master

jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
working-directory: ./my-app
run: npm install
- name: Build
working-directory: ./my-app
run: npm run build

deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

我设法在 npm 安装和项目构建时设置工作目录。但是在部署中我不断收到这个错误,

enter image description here

所以我的理解是,这个错误是由于工作目录问题而发生的。所以我目前的项目结构是这样的。
. (root of my GitHub repository)
└── my-app
├── firebase.json <-- Git Hub action must point to this sub-dir
└── my-app-mobile
├── packages.json

那么我应该如何在我的 Firebase 部署过程中做到这一点呢?如果我对问题有误,问题和答案是什么?好像不能用 working-directory: ./my-appuses:

最佳答案

我查看了 firebase CLI 的文档,但没有看到任何设置路径到您的 firebase.json 的方法。通过 CLI 参数。但是,有一个存储根目录的环境变量。它在 predeploy 的上下文中和 postdeploy Hook ,所以我不确定 CLI 是否会尊重它。

$PROJECT_DIR — The root directory containing firebase.json



https://firebase.google.com/docs/cli#environment_variables
w9jds/firebase-action您正在使用的只是 CLI 的包装器。我不确定这是否可行,但您可以尝试如下设置项目目录。在单独的步骤中设置变量的原因是您无法计算 env 中的表达式。部分。见 this answer了解更多详情。容器操作,如 w9jds/firebase-action无需通过 env 直接传递变量即可访问该变量.
      - name: Set project dir environment var
run: echo ::set-env name=PROJECT_DIR::"$GITHUB_WORKSPACE/my-app"
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

如果这不起作用,另一种方法是 fork w9jds/firebase-action并添加 PROJECT_PATH entrypoint.sh 脚本的参数在这里:
https://github.com/w9jds/firebase-action/blob/master/entrypoint.sh

更新: I raised a PR添加 PROJECT_PATH w9jds/firebase-action 的参数.您现在可以按如下方式使用该操作。
      - name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
PROJECT_PATH: ./my-app

关于firebase - 如何在 GitHub 操作中将工作目录添加到部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58352402/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com