📌  相关文章
📜  Flutter – 使用 GitHub Actions 构建和发布 APK

📅  最后修改于: 2022-05-13 01:55:30.196000             🧑  作者: Mango

Flutter – 使用 GitHub Actions 构建和发布 APK

Github Actions 是一个 Github 工具,它允许用户直接在 Github 项目中创建 CI/CD 管道,而不是去第三方网站。它帮助我们非常方便地开发、测试和发布我们的项目。在本文中,我们将为我们的flutter项目构建一个工作流。我们将首先使用工作流构建项目,然后在 Github Actions 的 artifacts 部分下发布 APK。

所以现在我们对如何编写工作流有了基本的了解,让我们先在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 的工件部分。