cas*_*cas 4 continuous-integration github firebase flutter github-actions
我正在运行一个自动构建和发布 flutter 项目的 Github 操作。但我们使用开发和生产 Firebase 环境。因此,在构建之前,我想将 google-services.json 从开发版本切换到生产版本。但我似乎找不到一种简单的方法来做到这一点。或者是否有更好的方法在 flutter 中使用 Firebase 的开发和生产版本?
可能不是很有用,但这是当前状态下的操作
on:
push:
branches: [ stable ]
name: Build and Release
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
fetch-depth: '0'
- name: Bump version and push tag
id: tag
uses: anothrNick/github-tag-action@1.17.2
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}
WITH_V: true
RELEASE_BRANCHES: stable
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: subosito/flutter-action@v1
with:
flutter-version: '1.17.3'
- run: flutter pub get
- run: flutter build appbundle
- name: Create a Release APK
uses: ncipollo/release-action@v1
with:
artifacts: "build/app/outputs/bundle/release/*.aab"
tag: ${{ steps.tag.outputs.tag }}
token: ${{ secrets.TOKEN }}
Run Code Online (Sandbox Code Playgroud)
总的来说,我对 github actions 和 CI 非常非常陌生。随时欢迎任何建设性的反馈!
不确定这是最优化的解决方案,但我发现这是最容易更新和维护的。
第 1 步:将 google-services.json 文件存储在 Github 存储库的机密中(这样您就不必在存储库中提交此文件,这是一个额外的好处),其名称类似于 FIREBASE_CONFIG_DEV 和 FIREBASE_CONFIG_PROD。
第 2 步:创建两个工作流程:一个用于开发,例如触发每个拉取请求,另一个用于发布,由特定分支上的提交触发,就像您所做的那样
第 3 步:向您的项目提供 google-service.json
steps:
- uses: actions/checkout@v1
- name: Provide Firebase Android
env:
FIREBASE_CONFIG_DEV: ${{ secrets.FIREBASE_CONFIG_DEV }}
run: echo $FIREBASE_CONFIG_DEV > ./android/app/google-services.json
Run Code Online (Sandbox Code Playgroud)
您的开发工作流程应该如下所示
只需编辑此代码片段,将 google-services.json 的创建添加到您的 iOS 项目中,您就可以开始了
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |