Files
SoundGame/tools/stable-audio-3/.github/workflows/tflite-cross-platform.yml
T
SoundGame Dev f0f0a9b50e 初始提交:3 款纯音频游戏 + 共享引擎 + 完整文档与资产管线
- 共享引擎(app/src/main):GestureEngine 6 手势识别、AudioEngine 三层音频
  (ExoPlayer BGM 交叉淡入 / 对白 ducking / SoundPool 低延迟)、Game/GameEngine
  状态机接口、MainActivity 全屏封面 + TalkBack
- 《声命线》storyline:末世互动广播剧,3 幕 8 抉择点 4 结局
- 《声东击西》reflex:听声辨位反应,12 波战斗 + BGM 三档 BPM 变速
- 《暗室》escape:3x3 网格密室逃脱,钥匙→铁柜→保险丝→电箱→大门谜题链
- 文档:setup(从零搭建)/ architecture(架构)/ engine-api(引擎 API)/
  asset-pipeline(资产流水线)/ games/*(三款游戏设计文档)
- 资产管线:Qwen3-TTS 对白 + 程序合成音效/BGM + Mureka BGM 的 gen 脚本与台账,
  全部 ogg 资产入库可复现
- env.d 环境脚本:android/tts 入库;sfx/mureka 含密钥不入库,仅提交 .example.sh 模板
2026-08-29 13:00:34 +08:00

82 lines
3.0 KiB
YAML

name: TFLite cross-platform
# The optimized/tflite release must run identically on macOS, Linux, and
# Windows. This checks, on every OS ai-edge-litert ships wheels for:
# byte-compilation of the scripts, LiteRT importability, the weights
# link-or-copy fallback (no symlink privilege needed on Windows), console
# encoding under the runner's native code page, and --play dispatch.
# NO model downloads happen in CI.
on:
push:
paths:
- "optimized/tflite/**"
- ".github/workflows/tflite-cross-platform.yml"
pull_request:
paths:
- "optimized/tflite/**"
- ".github/workflows/tflite-cross-platform.yml"
jobs:
test:
strategy:
fail-fast: false
# Exactly the set ai-edge-litert has wheels for: manylinux x86_64 +
# aarch64, macosx_12_0_arm64, win_amd64. No macOS-Intel (macos-13) and
# no Windows-ARM runners — those combos have no wheel.
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install runtime requirements
run: python -m pip install -r optimized/tflite/requirements.txt
- name: Byte-compile all scripts
run: |
python -m py_compile \
optimized/tflite/scripts/sa3_tflite.py \
optimized/tflite/scripts/weights.py \
optimized/tflite/scripts/install.py \
optimized/tflite/scripts/examples.py \
optimized/tflite/scripts/test_windows_compat.py \
optimized/tflite/models/defs/tflite_pipeline.py
- name: LiteRT interpreter imports
run: python -c "from ai_edge_litert.interpreter import Interpreter"
- name: Windows-compat test suite
run: python optimized/tflite/scripts/test_windows_compat.py
- name: bootstrap.ps1 parses (PowerShell syntax check)
shell: pwsh
run: |
$errs = $null
[void][System.Management.Automation.Language.Parser]::ParseFile(
"optimized/tflite/bootstrap.ps1", [ref]$null, [ref]$errs)
if ($errs) { $errs | ForEach-Object { Write-Error $_.Message }; exit 1 }
[void][System.Management.Automation.Language.Parser]::ParseFile(
"optimized/tflite/sa3.ps1", [ref]$null, [ref]$errs)
if ($errs) { $errs | ForEach-Object { Write-Error $_.Message }; exit 1 }
- name: bootstrap.sh parses (bash syntax check)
if: runner.os != 'Windows'
run: bash -n optimized/tflite/bootstrap.sh
# Real install flow under the OS's bash (Git Bash on Windows — the
# environment a Windows user following the Unix instructions lands in;
# this exact path shipped broken once: .venv/Scripts vs .venv/bin).
- name: install.sh end-to-end + sa3 wrapper (bash on every OS)
run: |
cd optimized/tflite
./install.sh -y < /dev/null
./sa3 --help