RoboParty APT 源自动化管理仓库。
本仓库同时提供 Android repo 工具使用的源码清单 manifest.xml。它只负责
同步各个源码仓库,不负责 APT deb 包同步;APT 流程仍使用下面的
routing.yaml 和 GitHub Release。
在 Ubuntu/Debian 上优先使用系统软件包安装:
sudo apt update
sudo apt install -y repo git检查安装是否成功:
repo version
git --version如果系统软件源没有 repo,可以安装 Google 官方 repo launcher:
mkdir -p "$HOME/bin"
curl -fLo "$HOME/bin/repo" https://storage.googleapis.com/git-repo-downloads/repo
chmod a+x "$HOME/bin/repo"
export PATH="$HOME/bin:$PATH"如果希望永久生效,将 PATH 写入 shell 配置:
printf '\nexport PATH="$HOME/bin:$PATH"\n' >> "$HOME/.bashrc"
source "$HOME/.bashrc"然后再次检查:
repo version安装 repo 后,在一个新的源码目录执行:
http_proxy=http://10.43.0.100:8080 https_proxy=http://10.43.0.100:8080 repo init -u https://github.com/Roboparty/roboparty_repo.git -b main -m manifest.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
repo init -u https://github.com/Roboparty/roboparty_repo.git \
-b main -m manifest.xml
repo sync -j4默认会同步到 repo manifest 中声明的相同目录,例如:
├── app/
│ ├── roboparty_base/
│ ├── roboparty_motors/
│ ├── roboparty_imu/
│ ├── roboparty_dexhand/
│ ├── roboparty_rp_head/
│ ├── roboparty_rp_server/
│ ├── robopi_addon/
│ └── ...
└── image/
└── roboparty_image/
更新所有源码:
repo sync -j4查看清单中的项目:
repo list清单中的分支按各仓库当前实际使用情况配置。后续如果某个仓库切换默认
分支,需要同步修改 manifest.xml 对应项目的 revision。
在子仓库(如 roboparty_motors)中:
# 1. 更新 changelog
dch -v 2.1.1-1 "新功能和修复"
# 2. 提交并打 tag
git add .
git commit -m "Bump version to 2.1.1"
git tag v2.1.1
git push origin HEAD --tags推送后子仓库自己的 Actions 会编译出 .deb 并创建 GitHub Release。
注意:CI 会校验 tag(如
v2.1.1)与debian/changelog中的版本号是否一致,不一致则构建直接失败。必须先用dch更新 changelog 再打 tag。
如果只改了 debian/control、debian/rules 等,源代码版本不变:
dch -v 2.1.0-2 "Fix build deps"
git add debian/
git commit -m "Fix debian build scripts"
git push origin HEADActions 会生成 .deb Artifact 供测试,但不会发布 Release。
在 APT 服务器上手动执行脚本,从各仓库 Release 拉包并入库。
cd /path/to/roboparty_repo
export GH_TOKEN=<GitHub Personal Access Token>
python3 scripts/route_debs.py routing.yaml /srv/apt-incoming/
bash scripts/bot_inject.shroute_debs.py → 从 GitHub Release 下载 .deb,按 routing.yaml 分拣到 /srv/apt-incoming/
bot_inject.sh → 调用 reprepro 将 /srv/apt-incoming/ 入库到 /srv/apt/
服务器重建详见 server.md。
repos: # 要下载的 GitHub 仓库
- wentywenty/roboparty_motors
- Roboparty/roboparty_base
routing:
common: # suite 名称
- pattern: "roboparty-motors_*_arm64.deb"
- pattern: "ethercat-igh_*-rockchip-rk3588_arm64.deb"
version: 1.7.1-6.1.99-rt36 # 锁定版本(可选,默认拉最新)# 1. 导入 GPG 公钥
sudo curl -fsSL "https://apt.roboparty.com/roboparty.gpg" | \
sudo gpg --dearmor --yes -o /usr/share/keyrings/roboparty-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/roboparty-archive-keyring.gpg
# 2. 添加源(x86 用 amd64,arm64 改成 arm64)
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/roboparty-archive-keyring.gpg] https://apt.roboparty.com common main" | \
sudo tee /etc/apt/sources.list.d/roboparty.list
# 3. 安装
sudo apt-get update
sudo apt-get install roboparty-motors可用 suite:common / robopi1 / robopi2 / robopi3 / x86
dashboard.yml 每小时拉取 routing.yaml 中所有仓库的最新 Actions 状态。
所有仓库均为 public,无需额外配置 token。
roboparty_repo/
├── .github/workflows/
│ ├── sync-and-inject.yml # APT 入库 workflow
│ └── dashboard.yml # 编译状态看板
├── scripts/
│ ├── route_debs.py # 下载并分拣 deb
│ ├── bot_inject.sh # reprepro 入库脚本
│ └── dashboard.py # 看板脚本
├── routing.yaml # 仓库及路由规则
├── distributions # reprepro 仓库配置(参考用)
├── server.md # APT 服务器重建指南
└── env # 代理等环境变量(gitignore)