google-github-actions 部署多个功能

问题描述 投票:0回答:1

我正在尝试使用官方 google github 操作来部署多个功能,但不知道是否可以使用它。有人可以帮我看看是否可行吗?

这里是github action的链接: https://github.com/google-github-actions/deploy-cloud-functions

firebase github-actions
1个回答
0
投票

如果您有多个函数要在单一存储库中部署,您应该像这样设置文件夹:

  • 我的第一个函数项目
    • 功能/
  • 我的第二功能项目
    • 功能/

之后,使用下面的命令,我们在存储库中找到所有名为“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 }}
© www.soinside.com 2019 - 2024. All rights reserved.