这是tuxsuite模块。
项目描述
TuxSuite,由Linaro提供,是一套用于帮助Linux内核开发的工具和服务。TuxSuite CLI(此存储库)是TuxBuild、TuxTest和TuxOE的官方接口。
要请求访问,请发送邮件至 tuxsuite@linaro.org 或填写我们的 访问请求表单。
[[目录]]
简介
TuxSuite CLI支持三个服务:TuxBuild、TuxTest和TuxOE。
TuxBuild
TuxBuild是一个按需API,用于并行构建大量Linux内核。它在LKFT和ClangBuiltLinux等生产环境中以规模使用,同时许多个人Linux内核工程师也使用它。
通过运行tuxsuite build
和tuxsuite plan
来访问TuxBuild。
TuxTest
TuxTest 是一个用于可靠且快速测试 Linux 内核的按需 API。它目前处于 Beta 测试阶段,并且已经对 TuxBuild 用户开放。
TuxOE
TuxOE 是一个按需 API,用于并行大规模构建 Yocto/OpenEmbedded。它被 LKFT 在生产环境中大规模使用。
安装和配置
使用 pip 安装
TuxSuite 需要 Python 3.6 或更高版本,并且可以通过 pip 使用。
在您的系统上全局安装 tuxsuite
sudo pip3 install -U tuxsuite
将 tuxsuite 安装到您的家目录 ~/.local/bin
pip3 install -U --user tuxsuite
要升级 tuxsuite 到最新版本,运行您安装时使用的相同命令。
使用 Debian 软件包安装
TuxSuite 提供的 Debian 软件包具有最少的依赖关系,应该可以在任何 Debian 或基于 Debian 的系统(如 Ubuntu 等)上运行。
- 下载存储库签名密钥并将其保存到 /etc/apt/trusted.gpg.d/tuxsuite.gpg。
# wget -O /etc/apt/trusted.gpg.d/tuxsuite.gpg https://repo.tuxsuite.com/packages/signing-key.gpg
- 创建 /etc/apt/sources.list.d/tuxsuite.list,内容如下
deb https://repo.tuxsuite.com/packages/ ./
- 就像安装其他软件包一样安装 tuxsuite
apt update
apt install tuxsuite
升级 tuxsuite 将与升级其他软件包一样(apt update, apt upgrade)。
使用 RPM 软件包安装
TuxSuite 提供的 RPM 软件包具有最少的依赖关系,应该可以在任何基于 RPM 的系统(如 Fedora 等)上运行。
- 创建 /etc/yum.repos.d/tuxsuite.repo,内容如下
[tuxsuite]
name=tuxsuite
type=rpm-md
baseurl=https://repo.tuxsuite.com/packages/
gpgcheck=1
gpgkey=https://repo.tuxsuite.com/packages/repodata/repomd.xml.key
enabled=1
- 就像安装其他软件包一样安装 tuxsuite
dnf install tuxsuite
升级将在同一存储库中提供,因此您可以使用获取其他系统更新的相同程序来获取它们。
使用 Docker 安装
tuxsuite 也可以在 tuxsuite/tuxsuite 上作为 Docker 容器提供。
例如,要使用 Docker 运行 tuxsuite
docker run tuxsuite/tuxsuite tuxsuite build --help
从 tuxsuite 公共 ECR 使用 Docker 安装
tuxsuite 也可以在 gallery.ecr.aws/tuxsuite/tuxsuite 上作为 Docker 容器提供。
例如,要使用从 tuxsuite 的公共 ECR 获取的 Docker 运行 tuxsuite
docker run public.ecr.aws/tuxsuite/tuxsuite:latest tuxsuite build --help
未安装运行
如果您不想安装或不可以安装 TuxSuite,您可以直接从源目录运行它。通过 git 或其他方式获取源代码后,有一个 run
脚本会为您做正确的事情:您可以直接使用该脚本,或者将其链接到您的 PATH
目录中。
/path/to/tuxsuite/run --help
sudo ln -s /path/to/tuxsuite/run /usr/local/bin/tuxsuite && tuxsuite --help
设置配置
认证令牌需要存储在 ~/.config/tuxsuite/config.ini
中。以下给出了 ini 文件的最低格式
$ cat ~/.config/tuxsuite/config.ini
[default]
token=vXXXXXXXYYYYYYYYYZZZZZZZZZZZZZZZZZZZg
或者,可以提供 TUXSUITE_TOKEN
环境变量。
如果您没有 tuxsuite 令牌,请通过 tuxsuite@linaro.org 联系我们。
示例
tuxsuite build
使用 tuxsuite 命令行界面提交构建请求。默认情况下,这将等待构建完成后再返回。
tuxsuite build --git-repo 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git' --git-ref master --target-arch arm64 --kconfig defconfig --toolchain gcc-9
tuxsuite plan
使用 tuxsuite 命令行界面提交计划请求。计划文件描述了构建列表以及每个成功构建要运行的测试。当构建完成时,相应的测试将自动启动。
创建计划配置文件
version: 1
name: kernel validation
description: Build and test linux kernel with every toolchains
jobs:
- builds:
- {toolchain: gcc-8, target_arch: arm64, kconfig: defconfig}
- {toolchain: gcc-9, target_arch: arm64, kconfig: defconfig}
- {toolchain: gcc-10, target_arch: arm64, kconfig: defconfig}
- {toolchain: gcc-11, target_arch: arm64, kconfig: defconfig}
- {toolchain: gcc-12, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-10, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-11, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-12, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-13, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-14, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-15, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-16, target_arch: arm64, kconfig: defconfig}
- {toolchain: clang-nightly, target_arch: arm64, kconfig: defconfig}
test: {device: qemu-arm64, tests: [ltp-smoke]}
- builds:
- {toolchain: gcc-8, target_arch: i386, kconfig: defconfig}
- {toolchain: gcc-9, target_arch: i386, kconfig: defconfig}
- {toolchain: gcc-10, target_arch: i386, kconfig: defconfig}
- {toolchain: gcc-11, target_arch: i386, kconfig: defconfig}
- {toolchain: gcc-12, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-10, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-11, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-12, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-13, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-14, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-15, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-16, target_arch: i386, kconfig: defconfig}
- {toolchain: clang-nightly, target_arch: i386, kconfig: defconfig}
test: {device: qemu-i386, tests: [ltp-smoke]}
- builds:
- {toolchain: gcc-8, target_arch: x86_64, kconfig: defconfig}
- {toolchain: gcc-9, target_arch: x86_64, kconfig: defconfig}
- {toolchain: gcc-10, target_arch: x86_64, kconfig: defconfig}
- {toolchain: gcc-11, target_arch: x86_64, kconfig: defconfig}
- {toolchain: gcc-12, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-10, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-11, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-12, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-13, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-14, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-15, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-16, target_arch: x86_64, kconfig: defconfig}
- {toolchain: clang-nightly, target_arch: x86_64, kconfig: defconfig}
test: {device: qemu-x86_64, tests: [ltp-smoke]}
使用以下命令提交计划
tuxsuite plan --git-repo https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --git-ref master plan.yaml
tuxsuite test
使用 tuxsuite 命令行界面提交测试请求。这将等待测试完成后再返回。
tuxsuite test --device qemu-x86_64 --kernel https://storage.tuxboot.com/x86_64/bzImage --tests ltp-smoke
tuxsuite bake
使用 tuxsuite 命令行界面提交 OE 构建请求。这将等待 OE 构建完成后再返回。
tuxsuite bake submit build-definition.json
OE bake 构建示例 JSON 定义文件。
{
"container": "ubuntu-20.04",
"distro": "oniro-linux",
"environment": {
"TEMPLATECONF": "../oniro/flavours/linux"
},
"envsetup": "oe-core/oe-init-build-env",
"machine": "qemux86-64",
"sources": {
"repo": {
"branch": "kirkstone",
"manifest": "default.xml",
"url": "https://gitlab.eclipse.org/eclipse/oniro-core/oniro"
}
},
"target": "intltool-native"
}
tuxsuite results
results
子命令提供了一种获取之前提交的构建/测试/计划状态的方法。
当使用 fetch
子命令调用 results
子命令时,将显示用户之前提交的最新构建、测试和计划。
tuxsuite results fetch
build
选项根据给定的 uid
获取 build
的 results
。
tuxsuite results --build 1t26TJROt6zoxIw3YS2OlMXMGzK
test
选项根据给定的 uid
获取 test
的 results
。
tuxsuite results --test 1s20dnMkE94e3BHW8pEbOWuyL6z
“plan”选项根据给定的uid
获取plan
的结果。
tuxsuite results --plan 1t2UxTeU15WDwvhloPFUqjmr3CX
使用tuxsuite的项目和开发者
- LKFT - Linaro的Linux内核功能测试使用tuxsuite和gitlab-ci持续构建上游Linux内核。然后,在多种硬件上使用LAVA进行功能测试。
- ClangBuiltLinux使用TuxBuild验证了成百上千种Linux内核和LLVM环境的组合。
- Lee Jones使用GitLab CI流水线来验证他的3.18内核维护权。GitLab流水线、tuxsuite配置以及记录其设置的README.md文件位于kernel-pipeline仓库中。
社区和支持
您可以通过聊天、电子邮件或gitlab问题与TuxSuite团队取得联系。
要与我们聊天,请加入我们的公共Discord,或加入Libera Chat上的#tuxsuite和#tuxmake IRC频道。
您可以通过tuxsuite@linaro.org发送私人电子邮件来提出问题、评论或反馈。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。