Compare commits

...

2 Commits

Author SHA1 Message Date
Dustin 39d952d78d fixup! Add kioskbrowser
dustin/kitchenos/pipeline/head This commit looks good Details
2025-08-02 13:57:00 -05:00
Dustin 5922d3640e wip: Add Jenkins build pipeline
dustin/kitchenos/pipeline/head This commit looks good Details
2025-08-02 07:54:44 -05:00
4 changed files with 106 additions and 0 deletions

46
ci/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,46 @@
pipeline {
parameters {
booleanParam 'CLEAN_BUILD'
}
options {
disableConcurrentBuilds()
}
agent {
kubernetes {
yamlFile 'ci/podTemplate.yaml'
yamlMergeStrategy merge()
workspaceVolume persistentVolumeClaimWorkspaceVolume(
claimName: 'buildroot-kitchenos'
)
defaultContainer 'build'
}
}
stages {
stage('Clean') {
when {
expression {
params.CLEAN_BUILD == 'true'
}
}
steps {
sh 'git clean -fdx'
sh 'rm -rf buildroot'
}
}
stage('Build') {
steps {
sh '. ci/build.sh'
}
post {
success {
dir('_build/images') {
archiveArtifacts 'sdcard.img'
}
}
}
}
}
}

20
ci/build.sh Normal file
View File

@ -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 -C buildroot checkout -f "${BUILDROOT_BRANCH}"
git -C buildroot merge FETCH_HEAD --ff-only
fi
if [ ! -f _build/.config ]; then
make -C buildroot O="${PWD}"/_build BR2_EXTERNAL="${PWD}" "${DEFCONFIG}"
fi
make -C _build BR2_JLEVEL=4

17
ci/podTemplate.yaml Normal file
View File

@ -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

23
rootfs/usr/libexec/sway-systemd Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP="${XDG_SESSION_DESKTOP:-sway}"
export XDG_SESSION_TYPE=wayland
systemctl --user import-environment \
SWAYSOCK \
XDG_CURRENT_DESKTOP \
XDG_SESSION_DESKTOP \
XDG_SESSION_TYPE \
WAYLAND_DISPLAY
systemctl --user reset-failed
systemctl --user start sway-session.target
shutdown() {
systemctl --user stop sway-session.target
}
trap shutdown INT TERM
swaymsg -t subscribe '["shutdown"]'
shutdown