Skip to content

Latest commit

 

History

History
70 lines (59 loc) · 3.11 KB

File metadata and controls

70 lines (59 loc) · 3.11 KB

发布

CLI

validate <project>          配置、脚本、引用校验
dev <project> [--sync]      开发运行;sync 跟随 LetsGal 工程
migrate <source> <target>
                           只读源工程 → 新原生项目,验证后发布
bundle <project> --output <dir> [--benchmark]
                           编译、资源校验、hardened Engine 与完整发行目录
pack <project>             高级 Hakutaku 资源打包
remap ...                  高级资源引用迁移
perf <project> [--startup]  开发测量

Cargo aliases 与 executable 使用同名动词;具体参数以 --help 为准。 正式内容先验证/编译,再加载或创建 publisher identity;失败保留已有可运行发布目录。 identity 与内嵌 key 不记录、不提交、不缓存,也不传给无需它的 child build。

macOS

cargo build --release --locked -p keine-editor --bin editor
cargo build --release --locked -p keine --bin keine --no-default-features --features audio-all,ui-sounds,video-native
bash dev/scripts/package-authoring-macos.sh target/release/editor target/release/keine /path/to/fresh-output
bash dev/scripts/bundle-macos.sh <project> <app-name> <reverse-dns-bundle-id>

第一条打包脚本使用预构建二进制,产出相邻 Kēne Editor.app / Kēne Engine.app。 目标必须是新目录;Engine discovery 与协议必须匹配。 Editor 导入图片无需外部工具;导入非规范音视频需要可执行的 FFmpeg(libopus/libx264), 可安装到 PATH 或放在 Editor executable 旁/Resources 内。当前打包脚本不附带 FFmpeg; Engine 播放规范媒体不依赖这项导入工具。 开发包使用 ad hoc 签名;正式签名和 notarization 尚不属于当前交付。 验收包括 codesign --verify --deep --strict、ZIP 解压后启动、独立安装后 sibling discovery。

Project CI

先本机创建稳定的 Hakutaku identity,将其 base64 放进游戏仓库 Actions secret HAKUTAKU_IDENTITY_BASE64。同一发布 lineage 始终复用同一身份。

name: Release
on:
  workflow_dispatch:
  push:
    tags: ["v*"]
permissions:
  contents: read
jobs:
  release:
    uses: maincoretech/keine/.github/workflows/project-release.yml@<40-character-keine-commit>
    with:
      project-path: .
      artifact-name: my-game-linux-x64
      retention-days: 14
    secrets:
      HAKUTAKU_IDENTITY_BASE64: ${{ secrets.HAKUTAKU_IDENTITY_BASE64 }}

完整 SHA 同时确定 workflow 与 Engine;branch/tag/短 SHA 被拒绝。 身份只在 runner 临时私有路径恢复,上传前无条件清理。 缓存只有 Cargo downloads 与 Kēne build trees,不含游戏 checkout、完整发行包或身份。 产物包含 executable、game.haku、data/、非秘密 provenance。 mutable ref、路径逃逸、缺失身份、非生产媒体、构建失败或未解析动态库均 fail closed,不上传半成品。

当前复用工作流面向 Linux x64;macOS/Windows 本机运行态验收不由它代替。 入口:project-release.yml、 publisher、构建脚本。