From e93ac05813a438c64ad4e656e05ec6ffd724b904 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 30 Aug 2012 19:05:04 +0100 Subject: Build tarball on worker The jenkins host does not have all the tools installed for getting version numbers etc. --- jenkinstool | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'jenkinstool') 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,33 +407,44 @@ 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 -- cgit v1.2.1