1

如何使用 CodeMagic.io 将我的 Flutter Web 应用程序构建自动部署到 Firebase 托管?

目前似乎支持的唯一选项是 Codemagic 静态页面和 Amazon S3 存储桶。除非使用自定义构建脚本。

我对自定义构建脚本选项进行了一些研究,网上没有太多关于自动部署到 Firebase 托管的信息。尽管我怀疑您可以修改 Codemagic 分发文档(“使用 Firebase CLI 发布应用程序”[https://docs.codemagic.io/publishing-yaml/distribution/])中提供的示例来实现此目的。请参阅下面的代码摘录。

- name: Publish the app to Firebase App Distribution
  script: |
    apkPath=$(find build -name "*.apk" | head -1)

    if [[ -z ${apkPath} ]]
    then
      echo "No apks were found, skip publishing to Firebase App Distribution"
    else
      echo "Publishing $apkPath to Firebase App Distribution"
      firebase appdistribution:distribute --app <your_android_application_firebase_id> --groups <your_android_testers_group> $apkPath
    fi

有谁知道我如何编写实现预期结果的自定义脚本?

4

2 回答 2

3

根据我的电子邮件

Firebase CLI 默认安装到 Codemagic 机器上,因此就像 Mikhail 所说的那样,您必须添加FIREBASE_TOKEN到您的环境变量中,请先使用 Codemagic UI 对其进行加密。

login:ci您可以通过在本地控制台中运行来获取令牌。然后在构建步骤之后,您只需firebase deploy --token "$FIREBASE_TOKEN"在项目的根目录中运行(在 UI 中的构建后脚本中,或将其添加到您的 .yaml 中),默认情况下 Codemagic 所在的位置。

于 2020-09-29T07:22:24.293 回答
1

在从 CI/CD 服务部署之前,请确保您完成了以下步骤:

  1. 您已经通过创建了 firebase 项目firebase init
  2. 您已添加firebase.json到您的存储库
  3. 确保你有 firebase 令牌(https://firebase.google.com/docs/cli#cli-ci-systems

下一步是配置 CI/CD 工作流

  1. 添加FIREBASE_TOKEN到环境变量(如果您使用 Codemagic UI 配置,请检查https://docs.codemagic.io/flutter/env-variables/ )
  2. 将此脚本添加到您的构建后脚本
#!/bin/sh

cd $FCI_BUILD_DIR
firebase deploy -m 'my comment'
于 2020-09-28T07:06:53.897 回答