wip: Initial commit
Some checks failed
dustin/kioskpi/pipeline/head There was a failure building this commit

This commit is contained in:
2025-11-14 20:07:09 -06:00
commit 8da4364569
7 changed files with 165 additions and 0 deletions

11
.gitmodules vendored Normal file
View File

@@ -0,0 +1,11 @@
[submodule "buildroot"]
path = buildroot
url = https://gitlab.com/buildroot.org/buildroot.git
branch = 2025.08.x
shallow = true
[submodule "aimee-os"]
path = aimee-os
url = https://git.pyrocufflink.blue/AimeeOS/aimee-os.git
branch = master
shallow = true

1
aimee-os Submodule

Submodule aimee-os added at b2a0aab680

1
buildroot Submodule

Submodule buildroot added at ec0d27f566

66
ci/Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,66 @@
pipeline {
parameters {
booleanParam 'CLEAN_BUILD'
string 'CUSTOM_TARGET'
}
options {
disableConcurrentBuilds()
}
agent {
kubernetes {
yamlFile 'ci/podTemplate.yaml'
workspaceVolume persistentVolumeClaimWorkspaceVolume(
claimName: 'buildroot'
)
defaultContainer 'build'
}
}
environment {
BR2_CCACHE_DIR = "${env.JENKINS_AGENT_WORKDIR}/br2-ccache"
}
stages {
stage('Clean') {
when {
expression {
return params.CLEAN_BUILD
}
}
steps {
sh 'git clean -fdx'
}
}
stage('Build') {
steps {
sh '. ci/defconfig.sh'
script {
if (params.CUSTOM_TARGET) {
sh "make -C _build '${CUSTOM_TARGET}'"
}
}
sh 'make -C _build'
}
post {
success {
dir('_build') {
archiveArtifacts('.config')
}
dir('_build/images') {
sh 'zstd -f firmware.img'
sh 'zstd -f sdcard.img'
archiveArtifacts([
'firmware.img.zst',
'rootfs.squashfs',
'sdcard.img.zst',
'update.tar.zstd',
].join(','))
}
}
}
}
}
}

15
ci/defconfig.sh Normal file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
sed -i \
-e '$a'"$(
grep BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION= buildroot/configs/raspberrypi3_defconfig
)" \
-e /BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION/d \
kioskpi_defconfig
make \
-C buildroot \
O="${PWD}"/_build \
BR2_EXTERNAL="${PWD}/aimee-os" \
defconfig \
BR2_DEFCONFIG="${PWD}"/kioskpi_defconfig

32
ci/podTemplate.yaml Normal file
View File

@@ -0,0 +1,32 @@
metadata:
annotations:
io.kubernetes.cri-o.TrySkipVolumeSELinuxLabel: 'true'
spec:
containers:
- name: build
image: git.pyrocufflink.net/containerimages/buildroot
resources:
limits: &resources
cpu: 6
memory: 12Gi
requests: *resources
volumeMounts:
- mountPath: /etc/ssh/ssh_known_hosts
name: ssh-known-hosts
subPath: ssh_known_hosts
nodeSelector:
kubernetes.io/arch: amd64
du5t1n.me/jenkins: ''
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
seLinuxOptions:
level: s0:c596,c675
tolerations:
- key: du5t1n.me/jenkins
volumes:
- name: ssh-known-hosts
configMap:
name: ssh-known-hosts

39
configs/kioskpi_defconfig Normal file
View File

@@ -0,0 +1,39 @@
BR2_arm=y
BR2_cortex_a53=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_GLOBAL_PATCH_DIR="board/raspberrypi/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_TARGET_GENERIC_HOSTNAME="airplaypi"
BR2_INIT_SYSTEMD=y
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/raspberrypi3/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_DEFCONFIG="bcm2709"
BR2_LINUX_KERNEL_ZSTD=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus broadcom/bcm2710-rpi-cm3"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_XZ=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_BT=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI=y
BR2_PACKAGE_READLINE=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/raspberrypi3/config.txt"
BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/raspberrypi3/cmdline.txt"
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_IWD=y
BR2_PACKAGE_OPENSSH=y
# BR2_PACKAGE_OPENSSH_CLIENT is not set
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
BR2_PACKAGE_HOST_KMOD_XZ=y
AIMEEOS=y
AIMEEOS_RPI=y