Build and publish Linux kernel release assets for SporeVM.
This repository publishes:
sporevm-arm64-linux-<version>-Imagesporevm-arm64-linux-<version>-Image.configsporevm-arm64-linux-<version>-Image.sha256sporevm-arm64-linux-<version>.manifest.jsonsporevm-x86_64-linux-<version>-bzImagesporevm-x86_64-linux-<version>-bzImage.configsporevm-x86_64-linux-<version>-bzImage.sha256sporevm-x86_64-linux-<version>.manifest.json
Both kernels include the initrd, rootfs, Docker, cgroup, namespace, networking,
and filesystem support needed by spore run. ARM64 disables /dev/mem.
x86_64 enables it with CONFIG_STRICT_DEVMEM=y and
CONFIG_IO_STRICT_DEVMEM=n so the guest can map the reserved SporeVM board
MMIO page without exposing ordinary system RAM.
Release publishing fails closed unless the x86_64 bzImage, checksum, and
manifest all contain the approved SHA-256
07a9b6d8a9efd2b7c5e886d1c010e67245fa132c8b48cf567f200099b55abee8.
The exact approved x86_64 image, config, checksum, and manifest are retained in
approved/x86_64/6.1.155/. CI stages those files verbatim and verifies all four
file hashes before upload and again before release publication. The ARM64
release asset continues to be built normally.
Build one asset locally:
scripts/build-release-asset.sh dist/kernels
SPOREVM_KERNEL_ARCH=x86_64 \
scripts/build-release-asset.sh dist/kernels-x86_64Useful environment variables:
SPOREVM_KERNEL_VERSION, default6.1.155SPOREVM_KERNEL_ARCH,arm64by default; also supportsx86_64SPOREVM_KERNEL_DOCKER_IMAGE, defaults to the pinned builder inDockerfileSPOREVM_KERNEL_DOCKER_PLATFORM, defaultlinux/amd64; ARM64 kernels also support nativelinux/arm64buildsSPOREVM_KERNEL_CROSS_COMPILE, defaultaarch64-linux-gnu-when neededSPOREVM_KERNEL_TARBALL_SHA256SPOREVM_KERNEL_BUILD_USER,SPOREVM_KERNEL_BUILD_HOST,SPOREVM_KERNEL_BUILD_TIMESTAMP, andSPOREVM_KERNEL_BUILD_VERSION, default to the metadata embedded in the approved x86_64 kernelSPOREVM_KERNEL_BUILD_DIR, optional host cache directory mounted at/buildSPOREVM_KERNELS_GITHUB_REPOSITORY, defaultsporevm/kernelsSPOREVM_KERNELS_GITHUB_RELEASE_TOKEN, used by tagged release publishing
Buildkite builds ARM64 and stages the approved x86_64 artifact set on hosted
agents. Tagged builds then publish both architectures and dist/kernels.tar.gz
to the matching GitHub Release.