diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-08-30 19:05:04 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-08-30 19:05:04 +0100 |
commit | e93ac05813a438c64ad4e656e05ec6ffd724b904 (patch) | |
tree | ddcb64f7dba6ef12e8ca3a7be3ce0d7759b9a7c8 /jenkinstool | |
parent | 82df80f3c7e00da0ec8c25687dccdf618dc3d41c (diff) | |
download | jenkinstool-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-x | jenkinstool | 36 |
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 |