
持续交付通过自动化流程链机制,确保软件保持在随时可发布状态。Travis CI作为在线托管服务,能够与GitHub无缝集成,为Flutter工程提供自动化构建、测试和发布能力。
在项目根目录创建.travis.yml文件,定义构建流程。基本结构包括语言类型(language)和执行脚本(script)。例如,Dart项目的极简配置如下:
language: dart
script:
- dart dart_sample.dart提交后,Travis会自动触发构建,成功或失败状态会直接标记在GitHub提交记录上。
由于Travis默认不包含Flutter环境,需手动安装SDK并配置环境变量。示例配置:
os:
- osx
install:
- git clone https://github.com/flutter/flutter.git
- export PATH="$PATH:`pwd`/flutter/bin"
script:
- flutter doctor && flutter test此配置在macOS环境下克隆Flutter SDK,并执行flutter test运行测试用例。
利用Travis的matrix选项实现iOS和Android的并行构建:
matrix:
include:
# Android构建任务
- os: linux
language: android
android:
components:
- build-tools-28.0.3
- android-28
jdk: oraclejdk8
script:
- flutter build apk
# iOS构建任务
- os: osx
osx_image: xcode11.3
script:
- flutter build ios
install:
- git clone https://github.com/flutter/flutter.git
- export PATH="$PATH:`pwd`/flutter/bin"Android任务需指定JDK版本和SDK组件,iOS任务需指定Xcode版本。两者共享Flutter环境安装步骤。
通过deploy配置将生成的APK/IPA发布到GitHub Releases:
deploy:
provider: releases
api_key: "$GITHUB_TOKEN"
file: build/app/outputs/apk/release/app-release.apk
skip_cleanup: true
on:
tags: true需提前在Travis环境变量中设置GITHUB_TOKEN。此配置仅在打Git标签时触发发布。
$HOME/.pub-cache。通过上述配置,Flutter工程可实现从代码提交到构建发布的完整自动化流程,显著降低交付风险。