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
> &quot;test/grsecurity-[0-9]+\.[0-9]+-3\.[0-9]+\.[0-9]+-[0-9]+\.patch&quot; |
> head -n 1 | egrep -o &quot;3\.[0-9]+\.[0-9]+&quot;`
>
> # grab tarball
> curl --silent
> http://www.kernel.org/pub/linux/kernel/v3.0/linux-$VERSION.tar.bz2 &gt;
> 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
> &quot;test/grsecurity-[0-9]+\.[0-9]+-3\.[0-9]+\.[0-9]+-[0-9]+\.patch&quot; |
> head -n 1`
> curl --silent https://grsecurity.net/$PATCH &gt;
> $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 &lt; grsecurity.patch
> patch -p1 &lt; 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

Reply via email to