aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2022-11-04 13:51:51 +0100
committerosmith <osmith@sysmocom.de>2022-11-07 08:16:23 +0000
commite4a33ebda202352093c75766261b68ab0db8439a (patch)
treefbb17bb2e5668ad90f1e3f85b90721bea03961e6
parentac5bae1efa35753fdd491eb27170d6cb95e699cb (diff)
jenkins-gerrit: display JOB_TYPE infront of url
In the summary comment posted by jenkins to the patch on gerrit, display the JOB_TYPE infront of the URL instead of "build", if the build job is a matrix job that uses JOB_TYPE as variable. For such jobs, it changes: [build] https://jenkins.osmocom.org/… [build] https://jenkins.osmocom.org/… [build] https://jenkins.osmocom.org/… [build] https://jenkins.osmocom.org/… [lint] https://jenkins.osmocom.org/… to: [manuals] https://jenkins.osmocom.org/… [gateware] https://jenkins.osmocom.org/… [firmware] https://jenkins.osmocom.org/… [software] https://jenkins.osmocom.org/… [lint] https://jenkins.osmocom.org/… JOB_TYPE is used by osmo-e1-hardware and pysim. Change-Id: I51f49e4799961776dbddaedd76c14ed37a0e6c84
-rwxr-xr-xscripts/jenkins-gerrit/pipeline_summary.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/scripts/jenkins-gerrit/pipeline_summary.py b/scripts/jenkins-gerrit/pipeline_summary.py
index 44424d7..53c0f4a 100755
--- a/scripts/jenkins-gerrit/pipeline_summary.py
+++ b/scripts/jenkins-gerrit/pipeline_summary.py
@@ -10,6 +10,8 @@ import urllib.request
jenkins_url = "https://jenkins.osmocom.org"
re_start_build = re.compile("Starting building: gerrit-[a-zA-Z-_0-9]* #[0-9]*")
re_result = re.compile("^PIPELINE_[A-Z]*_PASSED=[01]$")
+re_job_type = re.compile("JOB_TYPE=([a-zA-Z-_0-9]*),")
+
def parse_args():
parser = argparse.ArgumentParser(
@@ -128,10 +130,26 @@ def jobs_for_summary(pipeline, build_matrix):
return ret
+def get_job_short_name(job):
+ """ :returns: a short job name, usually the stage (lint, deb, rpm, build).
+ Or in case of build a more useful name like the JOB_TYPE part
+ of the URL if it is found. For osmo-e1-hardware it could be
+ one of: manuals, gateware, firmware, software """
+ global re_job_type
+ stage = job["stage"]
+
+ if stage == "build":
+ match = re_job_type.search(job["url"])
+ if match:
+ return match.group(1)
+
+ return stage
+
+
def get_jobs_list_str(jobs):
ret = ""
for job in jobs:
- ret += f" [{job['stage']}] {job['url']}/consoleFull\n"
+ ret += f" [{get_job_short_name(job)}] {job['url']}/consoleFull\n"
return ret