-
Notifications
You must be signed in to change notification settings - Fork 18
Tuxbuild #243
base: master
Are you sure you want to change the base?
Tuxbuild #243
Conversation
tuxbuild (https://gitlab.com/Linaro/tuxbuild) is a new microservice from Linaro for building Linux kernel images. We can build clang kernel images with it via: $ tuxbuild build \ --git-repo https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git \ --git-ref master --target-arch arm64 --kconfig defconfig --toolchain clang-9 to build mainline ARCH=arm64 defconfig with Clang 9. This requires a tuxbuild client installed, and an API key. For example, I have requested 2 API keys; one is in my ~/.config/tuxbuild/config.ini, one is stored in an environmental variable TUXBUILD_TOKEN in https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/settings. See https://gitlab.com/Linaro/tuxbuild#setup-config for more information. This change allows driver.sh to use tuxbuild rather than fetching and building kernel images locally. The above command with driver.sh would look like: $ TUX_BUILD=1 ARCH=arm64 REPO=linux LLVM_VERSION=9 ./driver.sh This change turns on 3 daily builds with tuxbuild; all mainline defconfigs with clang-9, one arm64, one arm32_v7, and on x86_64.
for testing TUX_BUILD=1 builds on travisci.
|
||
# https://gitlab.com/Linaro/tuxbuild/-/issues/56 | ||
start=$(date +%s) | ||
build_url=$(timeout 50m ${cmd} | grep -o https://builds.tuxbuild.com/.\* | head -n1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am fairly certain Travis will timeout here because there will not be any output for ten minutes. I am not sure how to get around that, we'll have to brain storm (or maybe reach out to Travis support and see if there is any way for that restriction to be waved).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last time I contacted Travis CI support, they told me there is no way to change the 10-minute silence timeout. The easiest way to get around that restriction is to just print something every 10 minutes.
# https://builds.tuxbuild.com/neNnj76CSx8sDEbwlUHGbA/ arm64 31:06 | ||
# https://builds.tuxbuild.com/9ieKegqDeZBTCMaG3et7ig/ arm64 | ||
# https://builds.tuxbuild.com/rPqYnwW4B8xhi8i6atmcpg/ arm | ||
cmd="tuxbuild build --git-repo ${url} --git-ref ${branch:=master} --target-arch ${tux_arch} --kconfig ${config} --toolchain clang-${LLVM_VERSION}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be an array:
cmd=( tuxbuild build --git-repo ${url} --git-ref ${branch:=master} --target-arch ${tux_arch} --kconfig ${config} --toolchain clang-${LLVM_VERSION} )
...
build_url=$(timeout 50m "${cmd[@]}" | ...)
start=$(date +%s) | ||
build_url=$(timeout 50m ${cmd} | grep -o https://builds.tuxbuild.com/.\* | head -n1) | ||
end=$(date +%s) | ||
runtime=$((${end}-${start})) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be runtime=$((end - start))
I expect the first run to fail; we need to figure out how to ship the
tuxbuild
client in our docker image. Once that's sorted, we can: