Compare commits
No commits in common. "dev/new" and "master" have entirely different histories.
|
@ -1,2 +1 @@
|
||||||
/_build
|
/_build
|
||||||
/airplaypi_defconfig
|
|
||||||
|
|
|
@ -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
|
|
@ -0,0 +1,22 @@
|
||||||
|
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) \
|
||||||
|
O=$(O) \
|
||||||
|
$(DEFCONFIG)
|
||||||
|
|
||||||
|
.PHONY: update-config
|
||||||
|
update-config:
|
||||||
|
$(MAKE) -C $(O) $(DEFCONFIG)
|
||||||
|
|
||||||
|
%:
|
||||||
|
$(MAKE) -C $(O) $@
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 9dae022788fa4040bbe7c5b38a3278d64e2d5458
|
|
@ -1,45 +0,0 @@
|
||||||
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_OVERLAY="$(WORKSPACE)/rootfs-overlay"
|
|
||||||
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_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_AVAHI=y
|
|
||||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
|
||||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
|
||||||
BR2_PACKAGE_IPROUTE2=y
|
|
||||||
BR2_PACKAGE_IWD=y
|
|
||||||
BR2_PACKAGE_OPENSSH=y
|
|
||||||
# BR2_PACKAGE_OPENSSH_CLIENT is not set
|
|
||||||
BR2_PACKAGE_SHAIRPORT_SYNC=y
|
|
||||||
BR2_PACKAGE_SHAIRPORT_SYNC_CONVOLUTION=y
|
|
||||||
BR2_PACKAGE_SHAIRPORT_SYNC_DBUS=y
|
|
||||||
BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR=y
|
|
||||||
# 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
|
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 00fa6003038b4c4483f52dded1f8b9cf2fa57e5a
|
|
@ -1,7 +1,6 @@
|
||||||
pipeline {
|
pipeline {
|
||||||
parameters {
|
parameters {
|
||||||
booleanParam 'CLEAN_BUILD'
|
booleanParam 'CLEAN_BUILD'
|
||||||
string 'CUSTOM_TARGET'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
options {
|
options {
|
||||||
|
@ -11,6 +10,7 @@ pipeline {
|
||||||
agent {
|
agent {
|
||||||
kubernetes {
|
kubernetes {
|
||||||
yamlFile 'ci/podTemplate.yaml'
|
yamlFile 'ci/podTemplate.yaml'
|
||||||
|
yamlMergeStrategy merge()
|
||||||
workspaceVolume persistentVolumeClaimWorkspaceVolume(
|
workspaceVolume persistentVolumeClaimWorkspaceVolume(
|
||||||
claimName: 'buildroot-airplaypi'
|
claimName: 'buildroot-airplaypi'
|
||||||
)
|
)
|
||||||
|
@ -36,62 +36,16 @@ pipeline {
|
||||||
|
|
||||||
stage('Prepare') {
|
stage('Prepare') {
|
||||||
steps {
|
steps {
|
||||||
checkout(
|
container('jnlp') {
|
||||||
poll: false,
|
sh 'git submodule update --remote aimee-os'
|
||||||
scm: scmGit(
|
}
|
||||||
branches: [[name: 'refs/tags/2025.05.1']],
|
|
||||||
browser: gitLab('https://gitlab.com/buildroot.org/buildroot/'),
|
|
||||||
extensions: [
|
|
||||||
[
|
|
||||||
$class: 'RelativeTargetDirectory',
|
|
||||||
relativeTargetDir: 'buildroot',
|
|
||||||
],
|
|
||||||
cloneOption(
|
|
||||||
shallow: true,
|
|
||||||
depth: 1,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
userRemoteConfigs: [[
|
|
||||||
url: 'https://gitlab.com/buildroot.org/buildroot.git',
|
|
||||||
]],
|
|
||||||
)
|
|
||||||
)
|
|
||||||
checkout(
|
|
||||||
poll: false,
|
|
||||||
scm: scmGit(
|
|
||||||
branches: [[name: 'refs/heads/master']],
|
|
||||||
browser: [
|
|
||||||
$class: 'GiteaBrowser',
|
|
||||||
repoUrl: 'https://git.pyrocufflink.net/AimeeOS/aimee-os'
|
|
||||||
],
|
|
||||||
extensions: [
|
|
||||||
[
|
|
||||||
$class: 'RelativeTargetDirectory',
|
|
||||||
relativeTargetDir: 'aimee-os',
|
|
||||||
],
|
|
||||||
cloneOption(
|
|
||||||
noTags: false,
|
|
||||||
shallow: true,
|
|
||||||
depth: 1,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
userRemoteConfigs: [[
|
|
||||||
url: 'https://git.pyrocufflink.net/AimeeOS/aimee-os.git',
|
|
||||||
]],
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Build') {
|
stage('Build') {
|
||||||
steps {
|
steps {
|
||||||
sh '. ci/defconfig.sh'
|
sh 'make config && make update-config'
|
||||||
script {
|
sh 'make all'
|
||||||
if (params.CUSTOM_TARGET) {
|
|
||||||
sh "make -C _build '${CUSTOM_TARGET}'"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sh 'make -C _build'
|
|
||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
success {
|
success {
|
||||||
|
@ -105,7 +59,6 @@ pipeline {
|
||||||
'firmware.img.zst',
|
'firmware.img.zst',
|
||||||
'rootfs.squashfs',
|
'rootfs.squashfs',
|
||||||
'sdcard.img.zst',
|
'sdcard.img.zst',
|
||||||
'update.tar.zstd',
|
|
||||||
].join(','))
|
].join(','))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
{
|
|
||||||
cat airplaypi_defconfig.in
|
|
||||||
grep BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION buildroot/configs/raspberrypi3_defconfig
|
|
||||||
} > airplaypi_defconfig
|
|
||||||
make \
|
|
||||||
-C buildroot \
|
|
||||||
O="${PWD}"/_build \
|
|
||||||
BR2_EXTERNAL="${PWD}/aimee-os" \
|
|
||||||
defconfig \
|
|
||||||
BR2_DEFCONFIG="${PWD}"/airplaypi_defconfig
|
|
|
@ -1,15 +1,4 @@
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
io.kubernetes.cri-o.TrySkipVolumeSELinuxLabel: 'true'
|
|
||||||
spec:
|
spec:
|
||||||
affinity:
|
|
||||||
nodeAffinity:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
- weight: 100
|
|
||||||
preference:
|
|
||||||
matchExpressions:
|
|
||||||
- key: node-role.kubernetes.io/jenkins
|
|
||||||
operator: Exists
|
|
||||||
containers:
|
containers:
|
||||||
- name: build
|
- name: build
|
||||||
image: git.pyrocufflink.net/containerimages/buildroot
|
image: git.pyrocufflink.net/containerimages/buildroot
|
||||||
|
@ -22,17 +11,8 @@ spec:
|
||||||
- mountPath: /etc/ssh/ssh_known_hosts
|
- mountPath: /etc/ssh/ssh_known_hosts
|
||||||
name: ssh-known-hosts
|
name: ssh-known-hosts
|
||||||
subPath: ssh_known_hosts
|
subPath: ssh_known_hosts
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/arch: amd64
|
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
fsGroup: 1000
|
|
||||||
fsGroupChangePolicy: OnRootMismatch
|
fsGroupChangePolicy: OnRootMismatch
|
||||||
seLinuxOptions:
|
|
||||||
level: s0:c596,c675
|
|
||||||
tolerations:
|
|
||||||
- key: du5t1n.me/jenkins
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: ssh-known-hosts
|
- name: ssh-known-hosts
|
||||||
configMap:
|
configMap:
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[General]
|
|
||||||
EnableNetworkConfiguration=false
|
|
||||||
[Network]
|
|
||||||
NameResolvingService=systemd
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Resolve]
|
|
||||||
MulticastDNS=no
|
|
|
@ -1,2 +0,0 @@
|
||||||
enable root-shell@.service ttyAMA0
|
|
||||||
enable shairport-sync.service
|
|
|
@ -1,26 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=root shell on %I
|
|
||||||
After=sshd.service
|
|
||||||
Conflicts=shutdown.target
|
|
||||||
Conflicts=getty@%i.service serial-getty@%i.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=idle
|
|
||||||
Environment=TERM=linux
|
|
||||||
ExecStart=/bin/sh
|
|
||||||
Restart=always
|
|
||||||
RestartSec=0
|
|
||||||
StandardInput=tty
|
|
||||||
TTYPath=/dev/%I
|
|
||||||
TTYReset=yes
|
|
||||||
TTYVHangup=yes
|
|
||||||
KillMode=process
|
|
||||||
IgnoreSIGPIPE=no
|
|
||||||
KillSignal=SIGHUP
|
|
||||||
|
|
||||||
# Unset locale for the console getty since the console has problems
|
|
||||||
# displaying some internationalized messages.
|
|
||||||
UnsetEnvironment=LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,20 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Shairport Sync - AirPlay Audio Receiver
|
|
||||||
Documentation=man:shairport-sync(7)
|
|
||||||
Documentation=file:///usr/share/doc/shairport-sync/README.md.gz
|
|
||||||
Documentation=https://github.com/mikebrady/shairport-sync
|
|
||||||
After=sound.target
|
|
||||||
Requires=avahi-daemon.socket
|
|
||||||
After=avahi-daemon.socket
|
|
||||||
Wants=network-online.target
|
|
||||||
After=network.target network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
Restart=on-failure
|
|
||||||
ExecStart=/usr/bin/shairport-sync
|
|
||||||
User=shairport-sync
|
|
||||||
Group=shairport-sync
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,2 +0,0 @@
|
||||||
u shairport-sync - "Shairport Sync"
|
|
||||||
m shairport-sync audio
|
|
Loading…
Reference in New Issue