Files
ESP32S3_vt/scripts/build.sh
T
sloray 896b21fe44
构建客户端 / 检查(类型 + 单元测试) (push) Canceled after 0s
构建客户端 / Linux x64(deb + AppImage) (push) Canceled after 0s
构建客户端 / Windows x64(NSIS 安装包) (push) Canceled after 0s
构建客户端 / macOS 通用(.app + .dmg) (push) Canceled after 0s
feat(client): RMIC::2026 界面重做、可计算的版本机制与固件版本联动
- feat(client): 界面换成墨黑蓝底 + 单支红的矩形语言,切角全部去掉,仅装甲条保留平行四边形
- feat(client): 自托管 HarmonyOS Sans SC 与 JetBrains Mono,中文与拉丁数字逐字回退
- feat(client): 新增启动序列、首启门、用户端 HUD、裁判端控制台、设置抽屉与固件维护页
- feat(client): 裁判端中缝与下方控制台可拖,鼠标落在哪一路下方就看哪一路
- feat(client): 设置抽屉常驻实时预览,与画面共用同一份准星绘制代码
- feat(client): 动效改用 Material 3 的缓动曲线与时长,逐条替换掉自造的贝塞尔
- feat(version): 版本号与 CHANGELOG 由 scripts/version.mjs 从 git 历史算出,不再手写
- feat(firmware): Hello 报文携带语义化版本、构建号与自报协议号,负载向后兼容
- feat(client): 固件版本显示在绑定列表与裁判端每一格;协议不匹配时给出具体原因
- feat(firmware): 固件包版本与客户端同源,都从 version.json 读
- fix(client): getCurrentWindow() 在没有 Tauri 注入时同步抛异常,浏览器预览整棵树被卸载
- fix(client): 启动序列的淡出 effect 清掉了自己刚设的 setTimeout,界面永远停在启动页
- fix(client): 设置抽屉左侧导航的锚点没挂到 section 上,且用错了坐标系
- fix(protocol): Hello 改用宽松帧头解析,让协议不匹配的板子能被解释而不是静默消失
- fix(build): Windows 上 bindgen 加载不了 libclang 的同目录依赖,构建脚本补上搜索路径
- fix(build): esp-idf-sys 在长路径下拒绝构建,固件构建改用短的目标目录
- build(client): 队标图标,含光学尺寸分级与手工拼的多尺寸 ICO
- build(ci): 守门 job 增加版本一致性检查,产物名改为 rmic-2026-*
- docs: 补充界面语言、版本机制与协议通告布局的说明
2026-10-19 02:40:08 +08:00

44 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Builds the firmware with the credentials from .env (see .env.example).
#
# esp-idf-sys downloads the pinned ESP-IDF automatically. Set IDF_PATH in the
# environment to reuse an existing installation (see README.md).
set -euo pipefail
cd "$(dirname "$0")/.."
# Resolve the SDK defaults/components from this repository even when the build
# cache is elsewhere, and copy the partition table into the CMake project.
export CARGO_WORKSPACE_DIR="$PWD"
export ESP_IDF_GLOB_BASE="$PWD"
export ESP_IDF_GLOB_PARTITIONS="partitions.csv"
if [ -f .env ]; then
set -a
# shellcheck disable=SC1091
. ./.env
set +a
fi
: "${WIFI_SSID:?set WIFI_SSID in .env (or export it) before building}"
export WIFI_PASS="${WIFI_PASS:-}"
package=0
cargo_args=()
for arg in "$@"; do
case "$arg" in
--package) package=1 ;;
*) cargo_args+=("$arg") ;;
esac
done
cargo build --release --locked "${cargo_args[@]}"
if [ "$package" -eq 1 ]; then
if ! command -v python3 >/dev/null 2>&1; then
echo "error: --package requires python3 on PATH" >&2
exit 1
fi
python3 scripts/package_firmware.py --firmware target/firmware
fi