logo
0
0
WeChat Login
docs: 更新 README 中的镜像地址和示例

CNB Flutter Setup Plugin

基于 GitHub Actions 的 Flutter action 移植的 CNB 插件,用于在云原生构建流水线中设置 Flutter SDK。

功能特性

  • 支持 stable/beta/master/main 渠道
  • 支持指定 Flutter 版本或使用最新版本
  • 支持从版本文件读取版本 (pubspec.yaml, .fvmrc, fvm_config.json)
  • 支持 x64 和 arm64 架构
  • 支持缓存 Flutter SDK 和 pub 依赖
  • 支持自定义 Git 源

使用方法

基本用法

main:
  push:
    - stages:
        - name: Setup Flutter
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            channel: stable
            version: 3.24.0
            architecture: x64

从 pubspec.yaml 读取版本

main:
  push:
    - stages:
        - name: Setup Flutter
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            version_file: pubspec.yaml

启用缓存

main:
  push:
    - stages:
        - name: Setup Flutter
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            channel: stable
            cache: true
            pub_cache: true

使用 master/main 渠道

main:
  push:
    - stages:
        - name: Setup Flutter (master)
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            channel: master

仅打印信息(Dry Run)

main:
  push:
    - stages:
        - name: Check Flutter Version
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            channel: stable
            dry_run: true

参数说明

参数类型默认值说明
channelstringstableFlutter 渠道 (stable/beta/master/main)
versionstringanyFlutter 版本号,如 "3.24.0"
version_filestring-版本文件路径 (pubspec.yaml/.fvmrc/fvm_config.json)
architecturestringx64CPU 架构 (x64/arm64)
cachebooleantrue是否启用 Flutter SDK 缓存
cache_keystring-自定义 Flutter 缓存 key
cache_pathstring-自定义 Flutter 缓存路径
pub_cachebooleantrue是否启用 pub 依赖缓存
pub_cache_keystring-自定义 pub 缓存 key
pub_cache_pathstringdefault自定义 pub 缓存路径
git_sourcestringhttps://github.com/flutter/flutter.gitFlutter Git 源地址
dry_runbooleanfalse仅打印信息不安装
storage_base_urlstringhttps://storage.googleapis.comFlutter 存储基础 URL

导出变量

插件执行后会导出以下变量供后续任务使用:

变量名说明
CHANNELFlutter 渠道
VERSIONFlutter 版本
ARCHITECTURECPU 架构
FLUTTER_ROOTFlutter SDK 路径
PUB_CACHEPub 缓存路径

构建插件

cd cnb-plugin
docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest

本地测试

docker run --rm \
  -e PLUGIN_CHANNEL="stable" \
  -e PLUGIN_VERSION="3.24.0" \
  -e PUB_HOSTED_URL="https://mirrors.tencent.com/dart-pub" \
  -e FLUTTER_STORAGE_BASE_URL="https://mirrors.tencent.com/flutter" \
  -e SDK_TEST_BASE_URL="https://mirrors.tencent.com/AndroidSDK/" \
  -e PLUGIN_STORAGE_BASE_URL="https://mirrors.tencent.com/flutter" \
  -e PLUGIN_GIT_SOURCE="https://cnb.cool/jacknic-lab/flutter/flutter" \
  ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest

# 测试文件系统访问
docker run --rm \
  -e PLUGIN_CHANNEL="stable" \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest \
  flutter --version

完整示例

main:
  push:
    - stages:
        - name: Setup Flutter
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            channel: stable
            cache: true
            pub_cache: true
        - name: Get dependencies
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            run: flutter pub get
        - name: Analyze
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            run: flutter analyze
        - name: Build
          image: docker.cnb.cool/jacknic/docker/flutter-action:latest
          settings:
            run: flutter build apk --release

About

No description, topics, or website provided.
Language
Shell94.2%
Dockerfile5.8%