跳转到主要内容

这是tuxsuite模块。

项目描述

TuxSuite Logo

Pipeline Status coverage report PyPI version Docker Pulls Code style: black PyPI - License

文档 - 仓库 - 问题

TuxSuite,由Linaro提供,是一套用于帮助Linux内核开发的工具和服务。TuxSuite CLI(此存储库)是TuxBuild、TuxTest和TuxOE的官方接口。

要请求访问,请发送邮件至 tuxsuite@linaro.org 或填写我们的 访问请求表单

[[目录]]

简介

TuxSuite CLI支持三个服务:TuxBuild、TuxTest和TuxOE。

TuxBuild

TuxBuild Logo

TuxBuild是一个按需API,用于并行构建大量Linux内核。它在LKFT和ClangBuiltLinux等生产环境中以规模使用,同时许多个人Linux内核工程师也使用它。

通过运行tuxsuite buildtuxsuite plan来访问TuxBuild。

TuxTest

TuxTest Logo

TuxTest 是一个用于可靠且快速测试 Linux 内核的按需 API。它目前处于 Beta 测试阶段,并且已经对 TuxBuild 用户开放。

TuxOE

TuxOE Logo

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 等)上运行。

  1. 下载存储库签名密钥并将其保存到 /etc/apt/trusted.gpg.d/tuxsuite.gpg。
# wget -O /etc/apt/trusted.gpg.d/tuxsuite.gpg https://repo.tuxsuite.com/packages/signing-key.gpg
  1. 创建 /etc/apt/sources.list.d/tuxsuite.list,内容如下
deb https://repo.tuxsuite.com/packages/ ./
  1. 就像安装其他软件包一样安装 tuxsuite
apt update
apt install tuxsuite

升级 tuxsuite 将与升级其他软件包一样(apt update, apt upgrade)。

使用 RPM 软件包安装

TuxSuite 提供的 RPM 软件包具有最少的依赖关系,应该可以在任何基于 RPM 的系统(如 Fedora 等)上运行。

  1. 创建 /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
  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 获取 buildresults

tuxsuite results --build 1t26TJROt6zoxIw3YS2OlMXMGzK

test 选项根据给定的 uid 获取 testresults

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发送私人电子邮件来提出问题、评论或反馈。

最后,通过tuxsuitetuxmake项目的gitlab问题来跟踪错误和功能请求。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

tuxsuite-1.42.2.tar.gz (212.7 kB 查看散列值)

上传时间

构建分发

tuxsuite-1.42.2-py3-none-any.whl (68.9 kB 查看散列值)

上传时间 Python 3

由以下支持