def perform(self, dryrun=False): """ Perform the release: push source, deploy artifacts and upload packages.""" cwd = os.getcwd() marketplaces_skipped = [] for marketplace in self.get_packages_list(): log("") if self.mp_config.has_option(marketplace, "skip"): log("[WARN] Skipped '%s' (%s)" % (marketplace, self.mp_config.get(marketplace, "skip"))) marketplaces_skipped.append(marketplace) upgrade_only = True else: upgrade_only = False if not self.mp_config.getboolean(marketplace, "prepared"): log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared")) continue if self.mp_config.getboolean(marketplace, "performed"): log("Skipped '%s' (%s)" % (marketplace, "Already performed")) continue try: if upgrade_only: log("Upgrade skipped %s..." % marketplace) else: log("Perform %s" % marketplace) os.chdir(os.path.join(self.repo.mp_dir, marketplace)) mp_repo = Repository(os.getcwd(), self.alias) # Perform release (_, branch, tag, next_snapshot, maintenance_version, is_final, skipTests, skipITs, _, other_versions, _, _) = Release.read_release_log(mp_repo.basedir) mp_release = Release(mp_repo, branch, tag, next_snapshot, maintenance_version, is_final=is_final, skipTests=skipTests, skipITs=skipITs, other_versions=other_versions) mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only) performed = True except Exception, e: stack = traceback.format_exc() if hasattr(e, 'message') and e.message is not None: stack = e.message + "\n" + stack log("[ERROR] %s" % stack) performed = False stack = stack.replace("%", "%%") self.mp_config.set(marketplace, "skip", "Failed! %s" % stack) self.mp_config.set(marketplace, "performed", str(performed)) self.repo.save_mp_config(self.mp_config) if performed and not upgrade_only: # Upload on Connect for dirpath, _, filenames in os.walk(mp_repo.basedir): for name in filenames: path = os.path.join(dirpath, name) if (os.path.isfile(path) and fnmatch.fnmatch(path[len(mp_repo.basedir) + 1:], self.mp_config.get(marketplace, "mp_to_upload"))): self.upload(CONNECT_PROD_URL, path, dryrun=dryrun) self.mp_config.set(marketplace, "uploaded", CONNECT_PROD_URL + ": " + path) self.repo.save_mp_config(self.mp_config)
def perform(self, dryrun=False): """ Perform the release: push source, deploy artifacts and upload packages.""" cwd = os.getcwd() marketplaces_skipped = [] for marketplace in self.get_packages_list(): log("") if self.mp_config.has_option(marketplace, "skip"): log("[WARN] Skipped '%s' (%s)" % (marketplace, self.mp_config.get(marketplace, "skip"))) marketplaces_skipped.append(marketplace) upgrade_only = True else: upgrade_only = False if not self.mp_config.getboolean(marketplace, "prepared"): log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared")) continue if self.mp_config.getboolean(marketplace, "performed"): log("Skipped '%s' (%s)" % (marketplace, "Already performed")) continue try: if upgrade_only: log("Upgrade skipped %s..." % marketplace) else: log("Perform %s" % marketplace) os.chdir(os.path.join(self.repo.mp_dir, marketplace)) mp_repo = Repository(os.getcwd(), self.alias) # Perform release (_, branch, tag, next_snapshot, maintenance_version, is_final, skipTests, skipITs, _, other_versions, _, _) = Release.read_release_log(mp_repo.basedir) mp_release = Release(mp_repo, branch, tag, next_snapshot, maintenance_version, is_final=is_final, skipTests=skipTests, skipITs=skipITs, other_versions=other_versions) mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only) performed = True except Exception, e: stack = traceback.format_exc() if hasattr(e, 'message') and e.message is not None: stack = e.message + "\n" + stack log("[ERROR] %s" % stack) performed = False stack = stack.replace("%", "%%") self.mp_config.set(marketplace, "skip", "Failed! %s" % stack) self.mp_config.set(marketplace, "performed", str(performed)) self.repo.save_mp_config(self.mp_config) if performed and not upgrade_only: self.upload(CONNECT_PROD_URL, marketplace, dryrun=dryrun)
def perform(self): """ Perform the release: push source, deploy artifacts and upload packages.""" cwd = os.getcwd() marketplaces = self.mp_config.sections() if self.restart_from: idx = marketplaces.index(self.restart_from) marketplaces = marketplaces[idx:] for marketplace in marketplaces: if self.mp_config.has_option(marketplace, "skip"): log("[WARN] Skipped '%s' (%s)" % (marketplace, self.mp_config.get(marketplace, "skip"))) continue if not self.mp_config.getboolean(marketplace, "prepared"): log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared")) continue if self.mp_config.getboolean(marketplace, "performed"): log("Skipped '%s' (%s)" % (marketplace, "Already performed")) continue try: log("Perform %s" % marketplace) os.chdir(os.path.join(self.repo.mp_dir, marketplace)) mp_repo = Repository(os.getcwd(), self.alias) # Perform release (_, branch, tag, next_snapshot, maintenance_version, is_final, skipTests, _, other_versions, _, _) = Release.read_release_log(mp_repo.basedir) mp_release = Release(mp_repo, branch, tag, next_snapshot, maintenance_version, is_final=is_final, skipTests=skipTests, other_versions=other_versions) mp_release.perform() performed = True except: stack = traceback.format_exc() log("[ERROR] %s" % stack) performed = False self.mp_config.set(marketplace, "skip", "Failed! %s" % stack) self.mp_config.set(marketplace, "performed", performed) self.repo.save_mp_config(self.mp_config) if performed: # Upload on Connect for dirpath, _, filenames in os.walk(mp_repo.basedir): for name in filenames: path = os.path.join(dirpath, name) if (os.path.isfile(path) and fnmatch.fnmatch(path[len(mp_repo.basedir) + 1:], self.mp_config.get(marketplace, "mp_to_upload"))): self.upload(CONNECT_PROD_URL, path) self.mp_config.set(marketplace, "uploaded", CONNECT_PROD_URL + ": " + path) self.repo.save_mp_config(self.mp_config) os.chdir(cwd)
def perform(self, dryrun=False): """ Perform the release: push source, deploy artifacts and upload packages.""" cwd = os.getcwd() marketplaces = self.mp_config.sections() marketplaces_skipped = [] if self.restart_from: idx = marketplaces.index(self.restart_from) marketplaces = marketplaces[idx:] for marketplace in marketplaces: log("") if self.mp_config.has_option(marketplace, "skip"): log("[WARN] Skipped '%s' (%s)" % (marketplace, self.mp_config.get(marketplace, "skip"))) marketplaces_skipped.append(marketplace) upgrade_only = True else: upgrade_only = False if not self.mp_config.getboolean(marketplace, "prepared"): log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared")) continue if self.mp_config.getboolean(marketplace, "performed"): log("Skipped '%s' (%s)" % (marketplace, "Already performed")) continue try: if upgrade_only: log("Upgrade skipped %s..." % marketplace) else: log("Perform %s" % marketplace) os.chdir(os.path.join(self.repo.mp_dir, marketplace)) mp_repo = Repository(os.getcwd(), self.alias) # Perform release (_, branch, tag, next_snapshot, maintenance_version, is_final, skipTests, skipITs, _, other_versions, _, _) = Release.read_release_log(mp_repo.basedir) mp_release = Release(mp_repo, branch, tag, next_snapshot, maintenance_version, is_final=is_final, skipTests=skipTests, skipITs=skipITs, other_versions=other_versions) mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only) performed = True except Exception, e: stack = traceback.format_exc() if hasattr(e, 'message') and e.message is not None: stack = e.message + "\n" + stack log("[ERROR] %s" % stack) performed = False stack = stack.replace("%", "%%") self.mp_config.set(marketplace, "skip", "Failed! %s" % stack) self.mp_config.set(marketplace, "performed", str(performed)) self.repo.save_mp_config(self.mp_config) if performed and not upgrade_only: # Upload on Connect for dirpath, _, filenames in os.walk(mp_repo.basedir): for name in filenames: path = os.path.join(dirpath, name) if (os.path.isfile(path) and fnmatch.fnmatch( path[len(mp_repo.basedir) + 1:], self.mp_config.get(marketplace, "mp_to_upload"))): self.upload(CONNECT_PROD_URL, path, dryrun=dryrun) self.mp_config.set(marketplace, "uploaded", CONNECT_PROD_URL + ": " + path) self.repo.save_mp_config(self.mp_config)