Mailinglist Archive: opensuse-buildservice (258 mails)

< Previous Next >
RE: [opensuse-buildservice] Integrating SCM with OBS
On Fri, 2010-08-13 at 10:23 -0500, Michael_E_Brown@xxxxxxxx wrote:
Below is similar to what we do at Dell. Integrating this server side would
have extremely limited usefulness for us, at least.

The problem with integrating this into the server side is that all of our
packages require "./autogen.sh && ./configure && make dist" to even create a
buildable tarball. This isnt something you really want to do on the server
side. Additionally, we keep our spec file in SCM and create it using
configure, so you cant even pull out a specfile from scm.

So we end up with a client machine that polls SCM and basically runs a script
similar to what you have below.

At Cray we got around the issue of doing expensive tasks on the
Subversion server by having the Subversion server tell a daemon (using
BackgroundRB) on the OBS server about the new commit. Then the daemon
decided when to do the checkout and tarballing on the OBS Server (which
was less loaded than the Subversion server). For our purposes, this
happens this exporting happens at night.

--
Michael
________________________________________
From: Marcus Meissner [meissner@xxxxxxx]
Sent: Friday, August 13, 2010 4:31 AM
To: Adrian Schröter
Cc: opensuse-buildservice@xxxxxxxxxxxx; brook.hong@xxxxxxxxx
Subject: Re: [opensuse-buildservice] Integrating SCM with OBS

On Fri, Aug 13, 2010 at 11:23:30AM +0200, Adrian Schröter wrote:

Hi,

This all is way too bloated.


I mean you can just use a simple osc client checkout/update/checkout.

Feed in some kind lists and you are set.

e.g. for wine in OBS I have this simple script which pulls daily git
snapshots, including detecting unchanged state and seperating local
patches:

#!/bin/bash -x
bsdir="/suse/meissner/projects/Emulators:Wine/wine-snapshot"
snapdir=/suse/meissner/projects/snapshot-wine/
xdate=`date +%Y%m%d`

cd $bsdir
cd $snapdir/wine
git pull
chars=`git diff '@{1 day ago}' | wc -c`
if [ "$chars" == "0" ]; then
echo "*** No git change found from yesterday, not rebuilding
package."
exit 0
fi
rm $bsdir/wine-*.tar.bz2
winever=`cat VERSION|sed -e 's/Wine version //;s/1.2-/1.2./;'`
git archive origin --prefix=wine-$winever.$xdate/ | bzip2
$bsdir/wine-$winever.$xdate.tar.bz2
# perhaps split into seperate patches
git diff origin..master > $bsdir/susepatches.patch
cd $bsdir
perl -pi -e "s/Version:.*/Version:$winever.$xdate/;"
wine-snapshot.spec
osc addremove
osc ci -m "$xdate git checkout"


So why not just write such little helpers for tar downloads, git
checkouts, svn checkouts, and then use a simple list or XML file as
configuration.

Should really be doable in 200 lines of code, all client-side, without lots of
server magic.

Ciao, Marcus
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx



--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >