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%