commit 9705d1d742f7cf0b938914f95bf00308428a81ea Author: Dustin C. Hatch Date: Sun Aug 17 21:48:14 2025 -0500 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a485625 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/_build diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0c309b4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,7 @@ +[submodule "aimee-os"] + path = aimee-os + url = https://git.pyrocufflink.net/aimeeos/aimee-os +[submodule "buildroot"] + path = buildroot + url = https://gitlab.com/buildroot.org/buildroot.git + branch = 2025.05.x diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3402819 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +O ?= $(PWD)/_build +DEFCONFIG ?= aimeeos_rpi3_defconfig + +AIMEEOS_SRC ?= $(PWD)/aimee-os +BUILDROOT_SRC ?= $(PWD)/buildroot + +.PHONY: config +config: $(O)/.config + +$(O)/.config: + $(MAKE) \ + -C $(BUILDROOT_SRC) \ + BR2_EXTERNAL=$(AIMEEOS_SRC) \ + BR2_DEFCONFIG=$(DEFCONFIG) \ + O=$(O) \ + defconfig \ + + +%: + $(MAKE) -C $(O) $@ diff --git a/aimee-os b/aimee-os new file mode 160000 index 0000000..f55d50b --- /dev/null +++ b/aimee-os @@ -0,0 +1 @@ +Subproject commit f55d50bd60fb3d5ad71e60b0b64fabbc61db1ba1 diff --git a/buildroot b/buildroot new file mode 160000 index 0000000..00fa600 --- /dev/null +++ b/buildroot @@ -0,0 +1 @@ +Subproject commit 00fa6003038b4c4483f52dded1f8b9cf2fa57e5a diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile new file mode 100644 index 0000000..19fad7b --- /dev/null +++ b/ci/Jenkinsfile @@ -0,0 +1,50 @@ +pipeline { + parameters { + booleanParam 'CLEAN_BUILD' + } + + options { + disableConcurrentBuilds() + } + + agent { + kubernetes { + yamlFile 'ci/podTemplate.yaml' + yamlMergeStrategy merge() + workspaceVolume persistentVolumeClaimWorkspaceVolume( + claimName: 'buildroot-airplaypi' + ) + defaultContainer 'build' + } + } + + stages { + stage('Clean') { + when { + expression { + params.CLEAN_BUILD == 'true' + } + } + steps { + sh 'git clean -fdx' + } + } + stage('Build') { + steps { + sh 'make config' + sh 'make' + } + post { + success { + dir('_build/images') { + archiveArtifacts [ + 'firmware.img', + 'rootfs.squashfs', + 'sdcard.img', + ].join(',') + } + } + } + } + } +} diff --git a/ci/podTemplate.yaml b/ci/podTemplate.yaml new file mode 100644 index 0000000..2f3514b --- /dev/null +++ b/ci/podTemplate.yaml @@ -0,0 +1,17 @@ +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 + volumes: + - name: ssh-known-hosts + configMap: + name: ssh-known-hosts