使用 Github Actions 持續發佈 Flutter 應用

前言

Github Actions 是 Github 提供的一種 CI/CD 服務,若是你的 Flutter 應用代碼放在 Github 上,那就能夠使用這個服務自動化進行應用測試,構建,發佈工做了。java

先說下 Github Actions 幾個核心概念,感受仍是挺易懂的,不得不說 Github Actions 的設計很厲害 😄git

Workflow filegithub

配置工做流程的文件,YAML 格式,放在項目根目錄的 .github/workflows 目錄內ubuntu

Workflow瀏覽器

由配置文件定義的一個工做流程,由一系列的的任務組成服務器

Jobapp

工做流程中的一個任務,由一系列的步驟 Step 組成gitlab

Steppost

一個任務其中的一個執行步驟,執行一些命令或者 Action測試

Action

一個步驟中的具體要進行操做,如拉取代碼,發送請求等,能夠使用本身或社區共享的 Action

Event

觸發工做流程運行的事件,好比推送代碼到倉庫 push,建立一個版本標籤 tag 等

Artifact

工程流程執行時產生的東西

Runner

就是工做流程運行的地方,Github 提供的服務器

示例

下面用一個示例項目來講明如何使用 Github Actions 發佈 Flutter 應用,先放成果 地址

  1. 首先建立一個 Flutter 項目
flutter create flutter_github_actions
複製代碼
  1. 添加一個配置文件 .github/workflows/main.yml

  1. 配置工做流程,將代碼推送到 Github
# main.yml

# 工做流程的名字
name: Test, Build and Release apk

# 工做流程觸發的時機,這裏是當一個版本標籤推送到倉庫時觸發
on:
 push:
 tags:
 - v*

# 這個工做流程須要執行的任務
jobs:
 process:
 name: all process
 runs-on: ubuntu-latest
    # 這個任務的步驟
 steps:
      # 拉取項目代碼
 - uses: actions/checkout@v2
      # 創建 java 環境
 - name: Setup Java JDK
 uses: actions/setup-java@v1.3.0
 with:
 java-version: "12.x"
      # 創建 Flutter 環境
 - name: Flutter action
 uses: subosito/flutter-action@v1.1.1
 with:
 channel: "stable"
 flutter-version: "1.12.x"
      # 下載項目依賴
 - run: flutter pub get
      # 執行測試
 - run: flutter test
      # 打包 APK
 - run: flutter build apk --release
      # 發佈到 Release
 - name: Release apk
 uses: ncipollo/release-action@v1.5.0
 with:
 artifacts: "build/app/outputs/apk/release/*.apk"
 token: ${{ secrets.GITHUB_RElEASE_TOKEN }}

複製代碼
  1. 建立 Token

要把構建出來的 apk 發佈到倉庫的 Release,還須要建立一個 Personal access token 提供發佈 action 訪問和操做代碼倉庫的權限,注意不要關閉瀏覽器標籤,由於這個 token 只有在第一次建立的時候可見。

  1. 添加環境變量

最後爲了能在工做流程中建立的 token,須要在倉庫的 secrets 裏添加一個環境變量 GITHUB_RElEASE_TOKEN 來儲存 token 值

  1. 觸發構建

最後建立一個版本標籤,推送到倉庫觸發工做流程

git tag v1.0.0

git push --tag
複製代碼

而後就能夠在倉庫的 Actions 裏面看到正在運行的工做流程了

總結

總結一下就是如下 4 個步驟

  1. 建立一個工做流程的配置文件 .github/workflows/main.yml
  2. 建立一個 Personnal access token
  3. 在項目的 serect 裏面添加一個環境變量 GITHUB_RElEASE_TOKEN
  4. 推送一個版本標籤🏷️,觸發工做流程

以後就能夠在每次發佈標籤後自動發佈了

原文地址

相關文章
相關標籤/搜索