Files
MapLibreParticleLab/tools/particle_release_pipeline

MapLibre Particle 统一发行流水线

本目录用于在 Mac release builder 上统一生成并发布 Android Native、React Native package 和 iOS Metal XCFramework。

唯一输入

只输入 Particle revision,例如:

tools/particle_release_pipeline/release.sh 7

版本自动推导:

  • Android Native / RN:13.4.1-particle.7
  • iOS SwiftPM:6.28.0-particle.7

以后升级到 .8 时只输入 8,不再手工维护多个平台版本号。

固定构建环境

  • macOS release builder
  • JDK 17
  • Gradle Wrapper 9.5.1
  • Android SDK 36
  • Android NDK 28.2.13676358
  • CMake 3.31.6
  • Android renderer:OpenGL
  • iOS renderer:Metal
  • iOS binary build:bazel build -c opt --//:renderer=metal //platform/ios:MapLibre.dynamic(正式优化构建;仅真机 ios-arm64,不包含 Simulator slice)

发布目标

不可变规则

同一个版本号禁止覆盖。任一公网目标已经存在时,prepare/publish 阶段直接失败;必须增加 Particle revision。

流水线从同一个版本冻结 Git commit 构建 Android 与 iOS。发布后必须从公网重新下载 artifact,并与本地产物逐字节比较;只有 public readback 通过才生成最终 release manifest 和 tag。

阶段

可单独执行:

release.sh 7 prepare
release.sh 7 build
release.sh 7 publish
release.sh 7 finalize

完整执行:

release.sh 7

prepare 会产生版本冻结 commit;finalize 会产生最终 manifest commit、tag,并推送 particle/main。发布工作必须在干净 release worktree 中运行。

.6 历史说明

13.4.1-particle.6 是 iOS 接入过渡发行。公开 RN .6 仍依赖 Android Native .5,因此不得把 .6 重新定义或覆盖成统一双平台发行。

第一个由本流水线定义的 Android/iOS 统一发行是 Particle revision 7。