Files
MapLibreParticleLab/tools/particle_release_pipeline/README.md
2026-09-21 08:03:39 +09:00

63 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 --//:renderer=metal //platform/ios:MapLibre.dynamic(仅真机 ios-arm64,不包含 Simulator slice)
## 发布目标
- Android Maven:https://pbf.jpcn.ccwu.cc/maven
- RN tgz:https://pbf.jpcn.ccwu.cc/npm
- iOS binary:https://pbf.jpcn.ccwu.cc/swift/maplibre-particle
- SwiftPM Git:https://pbf.jpcn.ccwu.cc/swift/maplibre-particle-spm.git
## 不可变规则
同一个版本号禁止覆盖。任一公网目标已经存在时,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。