使用 github 操作反应部署到 firebase
React deployment to firebase using github actions
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Archive Production Artifact
uses: actions/upload-artifact@master
with:
name: build
path: build
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: build
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
现在这是 gtihub 操作工作流程,它正在无误地执行构建作业,但在部署时出现错误
this is the error image
它显示的错误是 Error: Specified public directory 'build' does not exist, can't deploy hosting to site landing-page-design-1 我已经从我复制工作流的地方关注了博客一切都一样,除了我的一些项目细节很明显,请帮我弄清楚为什么会出现这个错误,我该如何解决它
您可能将工件解压缩到根目录而不是 build/
。
我猜这篇文章是为 download-artifact@v1
而写的,而您正在使用 download-artifact@v2
(因为那是当前 master
点)。讨论了两者之间的区别 here.
我会先验证工件下载后发生了什么
- name: Display directory structure
run: ls -R
shell: bash
如果文件确实在根目录中,添加 path
应该可以解决这个问题。
- name: Download Artifact
uses: actions/download-artifact@v2
with:
name: build
path: build
PS:不推荐使用 actions/<name>@master
,因为如果相同的操作在不同版本之间表现不同,它总是会导致问题...例如 actions/download-artifact
;)
您也可以尝试使用firebase-publish-react来简化您的工作流程文件
这个特殊的动作插件负责在内部构建应用程序,还可以重用前面步骤中的构建目录。
- name: Deploy to Firebase
uses: mohammed-atif/firebase-publish-react@v1.0
with:
firebase-token: ${{ secrets.FIREBASE_TOKEN }}
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Archive Production Artifact
uses: actions/upload-artifact@master
with:
name: build
path: build
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: build
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
现在这是 gtihub 操作工作流程,它正在无误地执行构建作业,但在部署时出现错误 this is the error image 它显示的错误是 Error: Specified public directory 'build' does not exist, can't deploy hosting to site landing-page-design-1 我已经从我复制工作流的地方关注了博客一切都一样,除了我的一些项目细节很明显,请帮我弄清楚为什么会出现这个错误,我该如何解决它
您可能将工件解压缩到根目录而不是 build/
。
我猜这篇文章是为 download-artifact@v1
而写的,而您正在使用 download-artifact@v2
(因为那是当前 master
点)。讨论了两者之间的区别 here.
我会先验证工件下载后发生了什么
- name: Display directory structure
run: ls -R
shell: bash
如果文件确实在根目录中,添加 path
应该可以解决这个问题。
- name: Download Artifact
uses: actions/download-artifact@v2
with:
name: build
path: build
PS:不推荐使用 actions/<name>@master
,因为如果相同的操作在不同版本之间表现不同,它总是会导致问题...例如 actions/download-artifact
;)
您也可以尝试使用firebase-publish-react来简化您的工作流程文件
这个特殊的动作插件负责在内部构建应用程序,还可以重用前面步骤中的构建目录。
- name: Deploy to Firebase
uses: mohammed-atif/firebase-publish-react@v1.0
with:
firebase-token: ${{ secrets.FIREBASE_TOKEN }}