📅  最后修改于: 2023-12-03 15:23:51.622000             🧑  作者: Mango
在软件开发中,自动化测试和持续集成是非常重要的一环。GitHub Actions 是 GitHub 官方提供的持续集成和持续部署解决方案之一,可以方便我们将代码提交到开发主干后进行自动化构建、自动化测试、自动化部署等操作。
Firebase 是 Google 提供的一组用于移动应用开发的解决方案,包括实时数据库、云存储、身份验证、消息推送等功能。在我们开发移动应用时,可以使用 Firebase 来进行测试和发布。
这篇教程将介绍如何使用 GitHub Actions 将 Android APK 上传到 Firebase 中的测试人员组。
在项目的根目录下创建 .github/workflows 目录,并在该目录下创建一个名为 firebase.yml 的 YAML 文件。在该文件中编写以下代码,完成自动构建和自动上传操作:
name: Firebase Upload
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Gradle
run: |
chmod +x ./gradlew
./gradlew assembleDebug
- name: Upload to Firebase
uses: wzieba/Firebase-Upload-Github-Action@v2.2
with:
app-id: ${{ secrets.FIREBASE_APP_ID }}
token: ${{ secrets.FIREBASE_TOKEN }}
apk-path: app/build/outputs/apk/debug/sample-app-debug.apk
firebase-project: ${{ secrets.FIREBASE_PROJECT_NAME }}
release-notes: 'Build from ${{ github.sha }}'
release-notes-file: ''
代码解析:
name
:定义 Action 的名称。on
:定义触发 Action 的条件,这里设置为在代码提交到 main 分支时触发。jobs
:定义一个 job,这里只定义了一个 build job。runs-on
:指定 job 的运行环境,这里选用 Ubuntu 系统。steps
:定义一个或多个步骤,依次执行。步骤解析:
Checkout code
:使用 GitHub 的 Checkout action 将代码仓库克隆到 Github action 容器中。Set up JDK 1.8
:安装 JAVA 环境。Build with Gradle
:使用 Gradle 编译项目,生成 APK 文件。Upload to Firebase
:使用 Firebase-Upload-Github-Action action 上传 APK 文件到 Firebase。在 Firebase 控制台中,进入“项目设置”页面,依次选择“服务帐号”和“新建服务帐号”,为 Firebase 创建一个服务帐号。然后在该页面中生成一个密钥,并将密钥内容复制到 GitHub 仓库的 Secrets 中。具体步骤请参考 Firebase 文档 服务帐号 。
在 GitHub 仓库的 Settings 页面中,进入“Secrets”标签页,然后添加以下三个 Secrets:
FIREBASE_APP_ID
:Firebase 项目的应用 ID。FIREBASE_TOKEN
:Firebase 项目的访问令牌。使用服务帐号生成的密钥。FIREBASE_PROJECT_NAME
:Firebase 项目的名称。将代码提交到 GitHub 仓库即可触发 Action 的运行。可以在 GitHub Actions 页面中查看 job 的运行状态和输出日志。
在 Firebase 控制台中,进入“测试实验室”页面,选择“测试者”标签页,即可查看已上传的 APK 文件。选择已上传的 APK 文件,可以查看该文件的版本号、发布日期、下载链接、变更日志等信息。
本文介绍了如何使用 GitHub Actions 和 Firebase 完成自动化构建和自动化部署。通过将 APK 文件上传到 Firebase 中的测试人员组,我们可以方便地进行移动应用测试,并及时处理测试反馈。希望本文对大家有所帮助。