我正在尝试使用官方 google github 操作来部署多个功能,但不知道是否可以使用它。有人可以帮我看看是否可行吗?
这里是github action的链接: https://github.com/google-github-actions/deploy-cloud-functions
如果您有多个函数要在单一存储库中部署,您应该像这样设置文件夹:
之后,使用下面的命令,我们在存储库中找到所有名为“functions”的目录,然后将此列表设置为变量名 dirs 下的步骤的输出
- name: Find Function Directories
id: find-dirs
run: echo "::set-output name=dirs::$(find . -type d -name 'functions')"
这是安装依赖项并在每个文件夹中运行部署命令的工作流程示例
jobs:
build:
name: Build and Deploy to Firebase Prod
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Install Firebase CLI
run: curl -sL https://firebase.tools | bash
- name: Find Function Directories
id: find-dirs
run: echo "::set-output name=dirs::$(find . -type d -name 'functions')"
- name: Setup Functions
run: |
for dir in ${{ steps.find-dirs.outputs.dirs }}; do
echo "Installing dependencies in directory $dir"
npm install --prefix $dir
cd $dir
echo "Adding service account key file"
echo $FIREBASE_ADMIN_KEY >> ./service-account.json
mkdir -p assets
mv ./service-account.json assets/
done
env:
FIREBASE_ADMIN_KEY: ${{secrets.SA_JSON_FILE}}
- name: Deploy Functions
run: |
for dir in ${{ steps.find-dirs.outputs.dirs }}; do
cd $dir
echo "Deploying functions"
firebase deploy --only functions --project ${{ secrets.PROJECT_ID }}
done
env:
PROJECT_ID: ${{ secrets.PROJECT_ID }}