| |
@@ -11,6 +11,7 @@
|
| |
import os
|
| |
import subprocess
|
| |
import time
|
| |
+ import re
|
| |
|
| |
import requests
|
| |
|
| |
@@ -116,14 +117,18 @@
|
| |
except MonitoringException:
|
| |
self.print_user(info_log, success=False)
|
| |
|
| |
- def bump_release(self, name, folder):
|
| |
+ def bump_release(self, name, version, folder):
|
| |
""" Bump the release of the spec file the specified git repo.
|
| |
"""
|
| |
info_log = f"Bumping release of: {name}.spec"
|
| |
self.print_user(info_log)
|
| |
try:
|
| |
- run_command(["rpmdev-bumpspec", f"{name}.spec"], cwd=folder)
|
| |
- self.print_user(info_log, success=True)
|
| |
+ if version:
|
| |
+ run_command(["rpmdev-bumpspec", f"{name}.spec", "-n", f"{version}"], cwd=folder)
|
| |
+ self.print_user(info_log, success=True)
|
| |
+ else:
|
| |
+ run_command(["rpmdev-bumpspec", f"{name}.spec"], cwd=folder)
|
| |
+ self.print_user(info_log, success=True)
|
| |
except MonitoringException:
|
| |
self.print_user(info_log, success=False)
|
| |
|
| |
@@ -687,7 +692,7 @@
|
| |
return side_tag_name
|
| |
|
| |
def clone_and_bump(
|
| |
- self, folder, nevrs, conf, name, target=None, new_side_tag=False
|
| |
+ self, folder, nevrs, conf, name, version, target=None, new_side_tag=False
|
| |
):
|
| |
"""Clone the repo, bump the release, commit and push."""
|
| |
namespace = conf["namespace"]
|
| |
@@ -703,7 +708,11 @@
|
| |
if new_side_tag:
|
| |
side_tag_name = self.create_side_tag(conf["fedpkg"], folder=gitfolder)
|
| |
target = side_tag_name
|
| |
- self.bump_release(name, folder=gitfolder)
|
| |
+ if version:
|
| |
+ version += version
|
| |
+ self.bump_release(name, version, folder=gitfolder)
|
| |
+ else:
|
| |
+ self.bump_release(name, version=0, folder=gitfolder)
|
| |
self.commit_changes("Bump release", folder=gitfolder)
|
| |
nevr = self.get_nevr(conf["fedpkg"], folder=gitfolder)
|
| |
nevrs[name] = nevr
|
| |
@@ -712,6 +721,25 @@
|
| |
print(f" Upcoming build : {nevr}")
|
| |
return (nevrs, target)
|
| |
|
| |
+ def nevrs_synced(self, nevrs, conf):
|
| |
+ package_one = conf["name_multi_1"]
|
| |
+ package_two = conf["name_multi_2"]
|
| |
+
|
| |
+ nevr_one = nevrs[package_one]
|
| |
+ nevr_two = nevrs[package_two]
|
| |
+
|
| |
+ if nevr_one.startswith(package_one):
|
| |
+ release_one = nevr_one[len(package_one):]
|
| |
+ version = int(re.search(r'\d+', nevr_one).group())
|
| |
+
|
| |
+ if nevr_two.startswith(package_two):
|
| |
+ release_two = nevr_one[len(package_two):]
|
| |
+
|
| |
+ if release_one != release_two:
|
| |
+ return version, False
|
| |
+
|
| |
+ return version, True
|
| |
+
|
| |
|
| |
def run_command(command, cwd=None):
|
| |
""" Run the specified command in a specific working directory if one
|
| |
the logic is:
if the releases are not in sync then we use rpmdev-bumpspec to increase
the version of both packages. this is the easiest way to make sure they
both end up with the same release as the default behaviour when a release
is bumped is to set version to 1.
Signed-off-by: Stephen Coady scoady@redhat.com