Flutter – 使用 GitHub Actions 构建和发布 APK
Github Actions 是一个 Github 工具,它允许用户直接在 Github 项目中创建 CI/CD 管道,而不是去第三方网站。它帮助我们非常方便地开发、测试和发布我们的项目。在本文中,我们将为我们的flutter项目构建一个工作流。我们将首先使用工作流构建项目,然后在 Github Actions 的 artifacts 部分下发布 APK。
Prerequisites: Basic understanding of Github Actions and writing Workflows using Github Actions.
所以现在我们对如何编写工作流有了基本的了解,让我们先在flutter中创建一个Github项目,并在项目根目录下的.github/workflows目录下创建一个名为flutter-workflow.yml的.yml文件。开始在该文件中编写代码。
name: Flutter CI
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: subosito/flutter-action@v1
with:
channel: 'beta'
- run: flutter pub get
- run: flutter format --set-exit-if-changed .
- run: flutter analyze .
- run: flutter build apk
- uses: actions/upload-artifact@v1
with:
name: release-apk
path: build/app/outputs/apk/release/app-release.apk
首先,我们给我们的工作流程起一个名字,这里的名字是Flutter CI。每个工作流都应该有一个“ on”块,该块命令工作流在达到该块中定义的操作时立即触发。在我们的例子中,我们已经指定在主分支中有新推送的地方,工作流都会被触发。作业是工作流程的关键部分,其中将包含有关必须完成的任务的详细信息。在这里,我们只指定了一项工作,即构建。每个构建都必须通过运行部分中指定的虚拟环境设置。这里我们使用 Github 托管的 ubuntu-latest。
现在是步骤部分,我们在其中定义了在触发工作流时将执行的步骤。为了构建我们的代码,我们必须首先通过编写actions/checkout@v1 来签出我们的存储库。
下一步将涉及通过actions/setup-java@v1 设置 java 。当我们设置Java时,我们也必须设置flutter以构建我们的应用程序。因此我们定义了 subposito/flutter-action@v1。当我们设置好Java和flutter后,我们必须获取flutter的依赖才能构建项目。所以我们定义了flutter pub get。一旦我们得到依赖,我们就格式化我们的代码, flutter format –set-exit-if-changed。flutter分析。运行我们代码的静态分析。
现在是构建 apk 并将 APK 上传到工件部分的主要部分。为此,我们说flutter build apk并使用actions/upload-artifact@v1将APK从目录build/app/outputs/apk/release/app-release.apk上传到我们项目的Artifacts部分。编写代码后,通过发送消息提交代码并转到“操作”选项卡以查看工作流正在运行。
正在运行的构建完成后,再次单击“操作”选项卡,然后单击刚刚完成运行的最新工作流。滚动到页面底部,您将在 artifacts 部分看到一个名为release-apk 的 apk 。
通过这种方式,我们创建了一个工作流程,让您每次在主代码库(即 master 分支)中有新推送时构建工件,并将新构建的 APK 上传到 Github Actions 的工件部分。