diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile new file mode 100644 index 0000000..11e7cd8 --- /dev/null +++ b/ci/Jenkinsfile @@ -0,0 +1,20 @@ +pipeline { + agent { + kubernetes { + yamlFile 'ci/podTemplate.yaml' + yamlMergeStrategy merge() + workspaceVolume persistentVolumeClaimWorkspaceVolume( + claimName: 'buildroot-kitchenos' + ) + defaultContainer 'build' + } + } + + stages { + stage('Build') { + steps { + sh '. ci/build.sh' + } + } + } +} diff --git a/ci/build.sh b/ci/build.sh new file mode 100644 index 0000000..36e55de --- /dev/null +++ b/ci/build.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +BUILDROOT_REPO=https://gitlab.com/buildroot.org/buildroot.git +BUILDROOT_BRANCH=2025.05.x + +DEFCONFIG=kitchenos_defconfig + + +if [ ! -d buildroot ]; then + git clone "${BUILDROOT_REPO}" --depth=1 -b "${BUILDROOT_BRANCH}" +else + git -C buildroot fetch --depth=1 origin "${BUILDROOT_BRANCH}" + git checkout -f "${BUILDROOT_BRANCH}" +fi + +if [ ! -f _build/.config ]; then + make -C buildroot O="${PWD}"/_build BR2_EXTERNAL="${PWD}" "${DEFCONFIG}" +fi + +make -C _build 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