summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-09-15 22:05:04 +0100
committerLars Wirzenius <liw@liw.fi>2012-09-15 22:05:04 +0100
commit83451a2f26a72cd291b35a0760c8d38345cb579e (patch)
treefeb576d956a0435e67695a51d33945d628277a7e /jenkinstool
parentd14f28ea0ca312ddc7a92cc09d736630d5b2e602 (diff)
downloadjenkinstool-83451a2f26a72cd291b35a0760c8d38345cb579e.tar.gz
Separate release and CI builds: reprepro, pbuilder
Diffstat (limited to 'jenkinstool')
-rwxr-xr-xjenkinstool76
1 files changed, 50 insertions, 26 deletions
diff --git a/jenkinstool b/jenkinstool
index 99f32f9..06e5594 100755
--- a/jenkinstool
+++ b/jenkinstool
@@ -31,6 +31,10 @@ have_vcs_copy = '''
have_vcs_copy=yes
'''
+no_vcs_copy = '''
+have_vcs_copy=no
+'''
+
prelude = '''
set -eu
@@ -118,6 +122,9 @@ artifacts="%(global.artifacts)s/${project}"
project_artifacts="$artifacts/$project"
project_url="%(global.artifacts-url)s/$project"
+pbuilder_ci_tgz=/var/cache/pbuilder/ci.tgz
+pbuilder_release_tgz=/var/cache/pbuilder/release.tgz
+
vcsworkspace="/var/lib/jenkins/workspace/${project}_localhost_vcs-update/"
workdir="$(pwd)"
if [ -e "$vcsworkspace" ] || [ "$have_vcs_copy" = yes ]]
@@ -154,8 +161,10 @@ then
exit 1
;;
esac
+ basetgz="$pbuilder_release_tgz"
else
debianversion="${version}-1.%(host.debian-dist)s"
+ basetgz="$pbuilder_ci_tgz"
fi
debianurl="%(global.artifacts-url)s/debian"
@@ -351,32 +360,46 @@ reprepro -b "$base" --verbose export
jc.set_description(
'Create or update pbuilder base.tgz on %(host.ssh-target)s')
- jc.add_ssh_command('''
-basetgz=/var/cache/pbuilder/base.tgz
-if [ -e "$basetgz" ]
-then
- if find $(dirname "$basetgz") -maxdepth 1 \
- -name $(basename "$basetgz") -mtime +%(global.pbuilder-max-age)s |
- grep .
+ jc.add_ssh_command(no_vcs_copy + prelude + '''
+
+echo "Creating/updating pbuilder tarballs."
+
+setup_pbuilder()
+{
+ local basetgz="$1"
+ local flavor="$2"
+ local dist="%(host.debian-dist)s"
+
+ if [ -e "$basetgz" ]
+ then
+ if find $(dirname "$basetgz") -maxdepth 1 \
+ -name $(basename "$basetgz") -mtime +%(global.pbuilder-max-age)s |
+ grep .
+ then
+ opts="--update --override-config"
+ else
+ echo "$basetgz is pretty new, keeping it"
+ return
+ fi
+ else
+ opts="--create"
+ fi
+
+ if %(global.pretend)s
then
- opts="--update --override-config"
+ echo "PRETEND: pbuilder create/update $basetgz"
else
- echo "$basetgz is pretty new, keeping it"
- exit
+ sudo pbuilder $opts \
+ --basetgz "$basetgz" \
+ --distribution "$dist" \
+ --mirror "%(global.debian-mirror)s" \
+ --othermirror \
+ "deb %(global.artifacts-url)s/debian $dist$flavor main"
fi
-else
- opts="--create"
-fi
-if %(global.pretend)s
-then
- echo "PRETEND: pbuilder create/update $basetgz"
-else
- sudo pbuilder $opts \
- --distribution "%(host.debian-dist)s" \
- --mirror "%(global.debian-mirror)s" \
- --othermirror \
- "deb %(global.artifacts-url)s/debian %(host.debian-dist)s main"
-fi
+}
+
+setup_pbuilder "$pbuilder_ci_tgz" "-ci"
+setup_pbuilder "$pbuilder_release_tgz" ""
''')
return jc
@@ -632,8 +655,8 @@ then
else
untrusted=""
fi
-sudo pbuilder --update
-sudo pbuilder --build --buildresult result $untrusted \
+sudo pbuilder --update --basetgz "$basetgz"
+sudo pbuilder --build --basetgz "$basetgz" --buildresult result $untrusted \
--debbuildopts $binopt *.dsc
dput jenkins "result/$archany_changes"
cd "$curdir"
@@ -678,7 +701,8 @@ rm -rf "$temp"
jc.add_shell_command('find . -delete')
def add_get_source_from_vcs(self, jc):
- jc.add_shell_command(prelude + 'cp -a "$vcsworkspace/." .')
+ jc.add_shell_command(
+ no_vcs_copy + prelude + 'cp -a "$vcsworkspace/." .')
class JenkinsTool(cliapp.Application):