diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..179a115 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +BUILDROOT_SRC ?= ~/src/buildroot + +.PHONY: all +all: initramfs rootfs + +.PHONY: rootfs +rootfs: _build/rootfs/.config + $(MAKE) -C _build/rootfs -j $(shell nproc) + +.PHONY: initramfs +initramfs: _build/initramfs/.config + $(MAKE) -C _build/initramfs -j $(shell nproc) + +.PHONY: publish +publish: + rsync -rtliO \ + _build/rootfs/images/rpi-firmware/ \ + _build/rootfs/images/Image \ + _build/rootfs/images/*.dtb \ + _build/initramfs/images/rootfs.cpio.lz4 \ + pxe0.pyrocufflink.blue:/var/lib/tftpboot/jenkinsagent-aarch64/ + rsync -P --no-W \ + _build/rootfs/images/rootfs.squashfs \ + pxe0.pyrocufflink.blue:/var/lib/nbd/jenkinsagent-aarch64.squashfs + +_build/rootfs/.config: + $(MAKE) -C $(BUILDROOT_SRC) O=${PWD}/_build/rootfs BR2_EXTERNAL=${PWD} jenkinsagent_defconfig + +_build/initramfs/.config: + $(MAKE) -C $(BUILDROOT_SRC) O=${PWD}/_build/initramfs BR2_EXTERNAL=${PWD} jenkinsagent_initramfs_defconfig diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile new file mode 100644 index 0000000..c70fd08 --- /dev/null +++ b/ci/Jenkinsfile @@ -0,0 +1,54 @@ +pipeline { + agent { + docker { + image 'registry.fedoraproject.org/fedora' + args '--privileged -u 0:0' + } + } + + stages { + stage('Prepare') { + steps { + checkout poll: false, scm: [ + $class: 'GitSCM', + branches: [[name: '2022.02.x']], + doGenerateSubmoduleConfigurations: false, + userRemoteConfigs: [[url: 'git://git.buildroot.net/buildroot']], + extensions: [ + [ + $class: 'RelativeTargetDirectory', + relativeTargetDir: 'buildroot', + ], + ], + ] + steps { + sh '. ci/prepare.sh' + } + } + } + + stage('Build') { + parallel { + stage('Build Initramfs') { + steps { + sh '. ci/build-initramfs.sh' + } + } + + stage('Build Rootfs') { + steps { + sh '. ci/build-rootfs.sh' + } + } + } + } + + stage('Publish') { + steps { + sshagent(['jenkins-pxe']) { + sh '. ci/publish.sh' + } + } + } + } +} diff --git a/ci/build-initramfs.sh b/ci/build-initramfs.sh new file mode 100644 index 0000000..ab33f07 --- /dev/null +++ b/ci/build-initramfs.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +make initramfs diff --git a/ci/build-rootfs.sh b/ci/build-rootfs.sh new file mode 100644 index 0000000..b05793f --- /dev/null +++ b/ci/build-rootfs.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +make rootfs diff --git a/ci/prepare.sh b/ci/prepare.sh new file mode 100644 index 0000000..1a24852 --- /dev/null +++ b/ci/prepare.sh @@ -0,0 +1 @@ +#!/bin/sh diff --git a/ci/publish.sh b/ci/publish.sh new file mode 100644 index 0000000..4294369 --- /dev/null +++ b/ci/publish.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +make publish