summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-08-30 19:05:04 +0100
committerLars Wirzenius <liw@liw.fi>2012-08-30 19:05:04 +0100
commite93ac05813a438c64ad4e656e05ec6ffd724b904 (patch)
treeddcb64f7dba6ef12e8ca3a7be3ce0d7759b9a7c8 /jenkinstool
parent82df80f3c7e00da0ec8c25687dccdf618dc3d41c (diff)
downloadjenkinstool-e93ac05813a438c64ad4e656e05ec6ffd724b904.tar.gz
Build tarball on worker
The jenkins host does not have all the tools installed for getting version numbers etc.
Diffstat (limited to 'jenkinstool')
-rwxr-xr-xjenkinstool36
1 files changed, 24 insertions, 12 deletions
diff --git a/jenkinstool b/jenkinstool
index ad141c9..fe2f2b1 100755
--- a/jenkinstool
+++ b/jenkinstool
@@ -99,6 +99,7 @@ then
debianurl="%(global.artifacts-url)s/debian"
tarball="${project}-${version}.tar.gz"
+ tarball_url="${project_url}/$tarball"
if [ -d debian ]
then
@@ -326,7 +327,7 @@ fi
jobs.append(self.apt_upgrade_job(host, project))
jobs.append(self.build_job(host, project))
- jobs.append(self.tarball_job(localhost, project))
+ jobs.append(self.tarball_job(main_host, project))
done = set()
for host in config['hosts']:
@@ -406,34 +407,45 @@ esac
jc.set_description('Create release tarball for %(project.name)s '
'from %(project.vcs)s')
self.add_clear_workspace(jc)
- jc.add_shell_command(prelude + '''\
-if [ ! -e "$artifacts/$tarball" ]
+ self.add_get_source_from_vcs(jc)
+ self.add_rsync_workspace_to_target(jc)
+ jc.add_ssh_command(have_vcs_copy + prelude + '''
+if ! url_exists "$tarball_url"
then
- old="$(pwd)"
- cd "$vcsworkspace"
+ tempdir="$(mktemp -d)"
+ dirname="$tempdir/${project}-${version}"
if [ -e .bzr ]
then
- bzr export "$workdir/${project}-${version}"
+ bzr export "$dirname"
elif [ -e .git ]
then
git archive --prefix="${project}-${version}/" HEAD |
- tar -C "$workdir" -xf -
+ tar -C "$tempdir" -xf -
else
echo "Unknown VCS" 1>&2
exit 1
fi
- cd "$old"
- tar -caf "$tarball" --anchored \
+ find . -delete
+ tar -C "$tempdir" -caf "$tarball" --anchored \
--exclude "${project}-${version}/debian" \
"${project}-${version}"
-
- mkdir -p "$artifacts"
- mv "$tarball" "$artifacts/."
else
echo "$artifacts/$tarball already exists, ignoring rebuilt version"
fi
''')
+ self.add_rsync_workspace_from_target(jc)
+
+ jc.add_shell_command(have_vcs_copy + prelude + '''
+mkdir -p "$artifacts"
+for x in *
+do
+ if [ ! -e "$artifacts/$x" ]
+ then
+ mv "$x" "$artifacts/."
+ fi
+done
+''')
return jc