Going to post my reply under LesMiksell to kill two birds...
On Thursday, May 17, 2012 5:38:35 PM UTC-7, slide wrote: > > I use Jenkins to build embedded software (C based) using makefiles and > the like. Building the kernel shouldn't really be any different. What > exactly are you looking for to enhance your current setup? > > slide > > On Thu, May 17, 2012 at 3:41 PM, Christian Bryant > <[email protected]> wrote: > > I'm in the process of moving my Linux From Scratch build system to be > > managed by Jenkins (I can check up on the build using a Jenkins Android > > app). However, I'm stumbling through examples of non-Java build > > configuration scripts that some folks have put out there for GCC and > Linux > > kernel builds. Anyone in the group built a build management framework > for a > > GNU/Linux OS like Linux From Scratch? From the Jenkins kernel build > code > > below (not mine), I can see that I'm going to have a large number of > shell > > tasks since I'm going to be building (on top of LFS 7.1) a large number > > (~200) of packages in addition to the kernel, and squirting out an ISO > from > > this (for a Live DVD). Appreciate any pointers from the local SMEs. > > Cheers. > > > > === Sample Jenkins XML for a kernel build (note use of NullSCM) === > > > > <?xml version='1.0' encoding='UTF-8'?> > > <project> > > <actions/> > > <description></description> > > <keepDependencies>false</keepDependencies> > > <properties/> > > <scm class="hudson.scm.NullSCM"/> > > <canRoam>true</canRoam> > > <disabled>false</disabled> > > > <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> > > <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> > > <triggers class="vector"> > > <hudson.triggers.TimerTrigger> > > <spec>@weekly</spec> > > </hudson.triggers.TimerTrigger> > > </triggers> > > <concurrentBuild>false</concurrentBuild> > > <builders> > > <hudson.tasks.Shell> > > <command># set up build env > > rm -rf $WORKSPACE/*</command> > > </hudson.tasks.Shell> > > <hudson.tasks.Shell> > > <command># determine latest grsecurity version > > VERSION=`curl --silent https://grsecurity.net/test.php | egrep -o > > > "test/grsecurity-[0-9]+\.[0-9]+-3\.[0-9]+\.[0-9]+-[0-9]+\.patch" > | > > head -n 1 | egrep -o "3\.[0-9]+\.[0-9]+"` > > > > # grab tarball > > curl --silent > > http://www.kernel.org/pub/linux/kernel/v3.0/linux-$VERSION.tar.bz2 > > > linux.tar.bz2 > > tar -xf linux.tar.bz2 > > > > # set it up > > mv linux-* stage</command> > > </hudson.tasks.Shell> > > <hudson.tasks.Shell> > > <command># download grsecurity > > PATCH=`curl --silent https://grsecurity.net/test.php | egrep -o > > > "test/grsecurity-[0-9]+\.[0-9]+-3\.[0-9]+\.[0-9]+-[0-9]+\.patch" > | > > head -n 1` > > curl --silent https://grsecurity.net/$PATCH > > > $WORKSPACE/stage/grsecurity.patch > > </command> > > </hudson.tasks.Shell> > > <hudson.tasks.Shell> > > <command># neoice.net local patch > > cp /usr/src/kernel/neoice.patch $WORKSPACE/stage</command> > > </hudson.tasks.Shell> > > <hudson.tasks.Shell> > > <command># apply patches > > cd $WORKSPACE/stage > > patch -p1 < grsecurity.patch > > patch -p1 < neoice.patch</command> > > </hudson.tasks.Shell> > > <hudson.tasks.Shell> > > <command># kernel config > > cd $WORKSPACE/stage > > cp /usr/src/kernel/config $WORKSPACE/stage/.config > > make oldconfig</command> > > </hudson.tasks.Shell> > > <hudson.tasks.Shell> > > <command>cd $WORKSPACE/stage > > make -j7 deb-pkg</command> > > </hudson.tasks.Shell> > > </builders> > > <publishers> > > <hudson.tasks.ArtifactArchiver> > > <artifacts>*.deb</artifacts> > > <latestOnly>false</latestOnly> > > </hudson.tasks.ArtifactArchiver> > > </publishers> > > <buildWrappers/> > > </project> > > > > > > > > -- > Website: http://earl-of-code.com >
