Example #1
0
    def build(self,
              release,
              interactive=False,
              build_cmd=None,
              terminate=False,
              build=None,
              cleanup=True):
        released_tags = os.path.join(self.project_root, self.tags_dir, release)
        tag = build or '%02d' % self.get_last_tag(released_tags)
        remote = os.path.join(released_tags, str(tag))
        package_name = '%s-%s-%s' % (self.project_key, release, tag)
        local_path = os.path.join(self.temp_dir, package_name)
        if os.path.exists(local_path):
            if not interactive or query_yes_no('remove %s?' % local_path,
                                               default='yes'):
                shutil.rmtree(local_path)
            else:
                cerr('Aborted')
                sys.exit(0)
        self.export(remote, local_path)
        if build_cmd:
            os.environ['PACKAGE'] = package_name
            os.chdir(local_path)
            cerr("Build cmd: %s" % build_cmd)
            cerr("Package name: %s" % package_name)
            if interactive and not query_yes_no('execute?', default='yes'):
                cerr('Aborted')
                return
            args = ('/usr/bin/env', 'sh', '-c', build_cmd)
            stdout, stderr, ret = self.execute(args)
            cout(stdout)
            if ret:
                cerr(stderr)
                sys.exit(ret)
            if terminate:
                if cleanup:
                    shutil.rmtree(local_path)
                return

        archive_name = os.path.join(self.temp_dir, '%s.tgz' % package_name)
        self.tar(archive_name, self.temp_dir, package_name, quiet=True)
        dest = os.path.join(self.repo_url, self.project_key)
        if not dest.endswith('/'):
            dest += '/'
        self.upload(archive_name, dest, interactive=interactive)
        if cleanup:
            cout("cleanup")
            shutil.rmtree(local_path)
            os.unlink(archive_name)
Example #2
0
    def build(self, release, interactive=False, build_cmd=None, terminate=False,
              build=None, cleanup=True):
        released_tags = os.path.join(self.project_root, self.tags_dir, release)
        tag = build or '%02d' % self.get_last_tag(released_tags)
        remote = os.path.join(released_tags, str(tag))
        package_name = '%s-%s-%s' % (self.project_key, release, tag)
        local_path = os.path.join(self.temp_dir, package_name)
        if os.path.exists(local_path):
            if not interactive or query_yes_no('remove %s?' % local_path,
                                               default='yes'):
                shutil.rmtree(local_path)
            else:
                cerr('Aborted')
                sys.exit(0)
        self.export(remote, local_path)
        if build_cmd:
            os.environ['PACKAGE'] = package_name
            os.chdir(local_path)
            cerr("Build cmd: %s" % build_cmd)
            cerr("Package name: %s" % package_name)
            if interactive and not query_yes_no('execute?', default='yes'):
                cerr('Aborted')
                return
            args = ('/usr/bin/env', 'sh', '-c', build_cmd)
            stdout, stderr, ret = self.execute(args)
            cout(stdout)
            if ret:
                cerr(stderr)
                sys.exit(ret)
            if terminate:
                if cleanup:
                    shutil.rmtree(local_path)
                return

        archive_name = os.path.join(self.temp_dir, '%s.tgz' % package_name)
        self.tar(archive_name, self.temp_dir, package_name, quiet=True)
        dest = os.path.join(self.repo_url, self.project_key)
        if not dest.endswith('/'):
            dest += '/'
        self.upload(archive_name, dest, interactive=interactive)
        if cleanup:
            cout("cleanup")
            shutil.rmtree(local_path)
            os.unlink(archive_name)
Example #3
0
    def build(self, release, interactive=False, build_cmd=None, terminate=False, build=None, cleanup=True):
        tag = build or "%02d" % self.get_last_tag(release)
        package_name = "%s-%s-%s" % (self.project_key, release, tag)
        local_path = os.path.join(self.temp_dir, package_name)
        if os.path.exists(local_path):
            if not interactive or query_yes_no("remove %s?" % local_path, default="yes"):
                shutil.rmtree(local_path)
            else:
                cerr("Aborted")
                sys.exit(0)
        self.clone(local_path)
        self.checkout(self.rc_tag(release, build))
        if build_cmd:
            os.environ["PACKAGE"] = package_name
            os.chdir(local_path)
            cerr("Build cmd: %s" % build_cmd)
            cerr("Package name: %s" % package_name)
            if interactive and not query_yes_no("execute?", default="yes"):
                cerr("Aborted")
                return
            args = ("/usr/bin/env", "sh", "-c", build_cmd)
            stdout, stderr, ret = self.execute(args)
            cout(stdout)
            if ret:
                cerr(stderr)
                sys.exit(ret)
            if terminate:
                if cleanup:
                    shutil.rmtree(local_path)
                return

        archive_name = os.path.join(self.temp_dir, "%s.tgz" % package_name)
        self.tar(archive_name, self.temp_dir, package_name, quiet=True)
        dest = os.path.join(self.repo_url, self.project_key)
        if not dest.endswith("/"):
            dest += "/"
        self.upload(archive_name, dest, interactive=interactive)
        if cleanup:
            cout("cleanup")
            shutil.rmtree(local_path)
            os.unlink(archive_name)
Example #4
0
 def print_logged_tasks(self, tasks):
     task_keys = sorted(tasks.keys())
     cout("collected:", ','.join('%s-%s' % (self.project_key, t)
                                 for t in task_keys))
     cout()
     for task in task_keys:
         revisions = map(lambda item: str(item[0]), sorted(tasks[task]))
         cout('%s-%s: %s' % (self.project_key, task, ','.join(revisions)))
Example #5
0
 def print_logged_tasks(self, tasks):
     task_keys = sorted(tasks.keys())
     cout("collected:",
          ','.join('%s-%s' % (self.project_key, t) for t in task_keys))
     cout()
     for task in task_keys:
         revisions = map(lambda item: str(item[0]), sorted(tasks[task]))
         cout('%s-%s: %s' % (self.project_key, task, ','.join(revisions)))
Example #6
0
 def switch(self, branch):
     cout('Switch to branch: {0}'.format(branch) )
     args = ('switch', branch)
     stdout, stderr, return_code = self.svn(args)
     if return_code != 0:
         raise SVNError(stderr)
Example #7
0
 def switch(self, branch):
     cout('Switch to branch: {0}'.format(branch))
     args = ('switch', branch)
     stdout, stderr, return_code = self.svn(args)
     if return_code != 0:
         raise SVNError(stderr)