Package: tuxsuite
Documentation-Repository-IssuesTuxSuite, by Linaro, is a suite of tools and services
to help with Linux kernel development. The TuxSuite CLI (this repo) is the
supported interface to TuxBuild, TuxTest and TuxOE.To request access, email us attuxsuite@linaro.orgor fill out ouraccess
request form.[[TOC]]IntroductionThe TuxSuite CLI supports three services: TuxBuild, TuxTest and TuxOE.TuxBuildTuxBuild is an on demand API for building massive quantities of Linux kernels
in parallel. It is used at scale in production byLKFTandClangBuiltLinuxas well as many
individual Linux kernel engineers.TuxBuild is accessed by runningtuxsuite buildandtuxsuite plan.TuxTestTuxTest is an on demand API for testing Linux kernels reliably and quickly. It
is currently in Beta phase and is already available to TuxBuild users.TuxOETuxOE is an on demand API for building Yocto/OpenEmbedded in parallel at scale.
It is used at scale in production byLKFTInstall and ConfigureInstall using pipTuxSuite requires Python version 3.6 or greater, and is available using pip.To install tuxsuite on your system globally:sudo pip3 install -U tuxsuiteTo install tuxsuite to your home directory at ~/.local/bin:pip3 install -U --user tuxsuiteTo upgrade tuxsuite to the latest version, run the same command you ran to
install it.Install using Debian packagesTuxSuite provides Debian packages that have minimal dependencies, and
should work on any Debian or Debian-based (Ubuntu, etc) system.Download the repository signing key and save it to
/etc/apt/trusted.gpg.d/tuxsuite.gpg.# wget -O /etc/apt/trusted.gpg.d/tuxsuite.gpg https://repo.tuxsuite.com/packages/signing-key.gpgCreate /etc/apt/sources.list.d/tuxsuite.list with the following contents:deb https://repo.tuxsuite.com/packages/ ./Install tuxsuite as you would any other package:apt update
apt install tuxsuiteUpgrading tuxsuite will work just like it would for any other package
(apt update, apt upgrade).Install using RPM packagesTuxSuite provides RPM packages that have minimal dependencies, and
should work on any RPM-based (Fedora, etc) system.Create /etc/yum.repos.d/tuxsuite.repo with the following contents:[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=1Install tuxsuite as you would any other package:dnf install tuxsuiteUpgrades will be available in the same repository, so you can get them
using the same procedure you already use to get other updates for your
system.Install using dockertuxsuite is also available as a docker container attuxsuite/tuxsuite.For example, to run tuxsuite via docker:docker run tuxsuite/tuxsuite tuxsuite build --helpInstall using docker from tuxsuite public ECRtuxsuite is also available as a docker container atgallery.ecr.aws/tuxsuite/tuxsuite.For example, to run tuxsuite via docker obtained from tuxsuite's
public ECR:docker run public.ecr.aws/tuxsuite/tuxsuite:latest tuxsuite build --helpRunning uninstalledIf you don't want to or can't install TuxSuite, you can run it directly from the
source directory. After getting the sources via git or something else, there is
arunscript that will do the right thing for you: you can either use that
script directly, or symlink it to a directory in yourPATH./path/to/tuxsuite/run--help
sudoln-s/path/to/tuxsuite/run/usr/local/bin/tuxsuite&&tuxsuite--helpSetup ConfigThe Authentication token needs to be stored in~/.config/tuxsuite/config.ini.
The minimal format of the ini file is given below:$ cat ~/.config/tuxsuite/config.ini
[default]
token=vXXXXXXXYYYYYYYYYZZZZZZZZZZZZZZZZZZZgAlternatively, theTUXSUITE_TOKENenvironment variable may be provided.If you do not have a tuxsuite token, please reach out to us attuxsuite@linaro.org.Examplestuxsuite buildSubmit a build request using the tuxsuite command line interface. This will
wait for the build to complete before returning by default.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-9tuxsuite planSubmit a plan request using the tuxsuite command line interface. The plan file
describes the list of builds along with the tests to run for each successful
build. When one build is finished, the corresponding test is automatically
started.Create a plan configuration file:version:1name:kernel validationdescription:Build and test linux kernel with every toolchainsjobs:-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]}Submit the plan with:tuxsuite plan --git-repo https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --git-ref master plan.yamltuxsuite testSubmit a test request using the tuxsuite command line interface. This will wait
for the test to complete before returning.tuxsuite test --device qemu-x86_64 --kernel https://storage.tuxboot.com/x86_64/bzImage --tests ltp-smoketuxsuite bakeSubmit an OE build request using the tuxsuite command line interface. This will wait
for the OE build to complete before returning.tuxsuite bake submit build-definition.jsonSample build definition json file for OE bake build.{"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 resultsTheresultssub-command provide a way to get the status of a
build/test/plan that has been previously submitted.Theresultssub-command when invoked withfetchsub-command shows the
latest builds, tests, and plans that have been previously submitted by
the user.tuxsuiteresultsfetchThebuildoption fetches theresultsof thebuildbased on the
givenuidtuxsuiteresults--build1t26TJROt6zoxIw3YS2OlMXMGzKThetestoption fetches theresultsof thetestbased on the
givenuidtuxsuiteresults--test1s20dnMkE94e3BHW8pEbOWuyL6zTheplanoption fetches theresultsof theplanbased on the
givenuidtuxsuiteresults--plan1t2UxTeU15WDwvhloPFUqjmr3CXProjects and Developers using tuxsuiteLKFT- Linaro's Linux Kernel Functional Testing
uses tuxsuite withgitlab-cito continuously build upstream Linux kernels. The kernels are then
functionally tested on a variety of hardware usingLAVA.ClangBuiltLinuxuses TuxBuild to
validate hundreds of combinations of Linux kernels and LLVM environments.Lee Jones uses aGitLab CI
pipelineto validate his 3.18 kernel maintainership. The gitlab pipeline, tuxsuite
config, and README.md documenting its setup are defined in thekernel-pipelinerepository.Community and SupportThe TuxSuite team may be engaged through chat, email, or gitlab issues.To chat with us,join our public Discord, or
our IRC channels #tuxsuite and #tuxmake onLibera Chat.Questions, comments or feedback are always welcome by private email attuxsuite@linaro.org.Finally, gitlab issues are used to track bugs and feature requests in bothtuxsuiteandtuxmakeprojects.