mirror of https://gerrit.osmocom.org/osmo-ci
jenkins-gerrit: send mail for V+1 for some users
Add a list of users that do not only get a notification mail when the gerrit verification failed, but also on success. Change-Id: I603b8a911c8f17aa726d9e3d5d644ad3262b42dd
This commit is contained in:
parent
f52c26a695
commit
c4df55dcfd
|
@ -37,6 +37,9 @@
|
||||||
- string:
|
- string:
|
||||||
name: GERRIT_PATCHSET_REVISION
|
name: GERRIT_PATCHSET_REVISION
|
||||||
description: set by gerrit verification pipeline job
|
description: set by gerrit verification pipeline job
|
||||||
|
- string:
|
||||||
|
name: GERRIT_PATCHSET_UPLOADER_NAME
|
||||||
|
description: set by gerrit verification pipeline job
|
||||||
- string:
|
- string:
|
||||||
name: GERRIT_PORT
|
name: GERRIT_PORT
|
||||||
description: set by gerrit verification pipeline job
|
description: set by gerrit verification pipeline job
|
||||||
|
|
|
@ -484,6 +484,7 @@
|
||||||
string(name: "GERRIT_BRANCH", value: "${{env.GERRIT_BRANCH}}"),
|
string(name: "GERRIT_BRANCH", value: "${{env.GERRIT_BRANCH}}"),
|
||||||
string(name: "GERRIT_HOST", value: "${{env.GERRIT_HOST}}"),
|
string(name: "GERRIT_HOST", value: "${{env.GERRIT_HOST}}"),
|
||||||
string(name: "GERRIT_PATCHSET_REVISION", value: "${{env.GERRIT_PATCHSET_REVISION}}"),
|
string(name: "GERRIT_PATCHSET_REVISION", value: "${{env.GERRIT_PATCHSET_REVISION}}"),
|
||||||
|
string(name: "GERRIT_PATCHSET_UPLOADER_NAME", value: "${{env.GERRIT_PATCHSET_UPLOADER_NAME}}"),
|
||||||
string(name: "GERRIT_PORT", value: "${{env.GERRIT_PORT}}"),
|
string(name: "GERRIT_PORT", value: "${{env.GERRIT_PORT}}"),
|
||||||
string(name: "GERRIT_REFSPEC", value: "${{env.GERRIT_REFSPEC}}"),
|
string(name: "GERRIT_REFSPEC", value: "${{env.GERRIT_REFSPEC}}"),
|
||||||
string(name: "PIPELINE_BUILD_URL", value: "${{env.BUILD_URL}}"),
|
string(name: "PIPELINE_BUILD_URL", value: "${{env.BUILD_URL}}"),
|
||||||
|
|
|
@ -19,6 +19,9 @@ def parse_args():
|
||||||
help="$BUILD_URL of the pipeline job, e.g."
|
help="$BUILD_URL of the pipeline job, e.g."
|
||||||
" https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bsc-nat/17/")
|
" https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bsc-nat/17/")
|
||||||
parser.add_argument("-o", "--output", help="output json file")
|
parser.add_argument("-o", "--output", help="output json file")
|
||||||
|
parser.add_argument("-n", "--notify-on-success", action="store_true",
|
||||||
|
help="always indicate in json that the owner should be"
|
||||||
|
" notified via mail, not only on failure")
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,7 +135,7 @@ def get_jobs_list_str(jobs):
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
def get_pipeline_summary(build_url):
|
def get_pipeline_summary(build_url, notify_on_success):
|
||||||
""" Generate a summary of failed and successful builds for gerrit.
|
""" Generate a summary of failed and successful builds for gerrit.
|
||||||
:returns: a dict that is expected by gerrit's set-review api, e.g.
|
:returns: a dict that is expected by gerrit's set-review api, e.g.
|
||||||
{"tag": "jenkins",
|
{"tag": "jenkins",
|
||||||
|
@ -179,7 +182,7 @@ def get_pipeline_summary(build_url):
|
||||||
else:
|
else:
|
||||||
summary += "Build Successful\n"
|
summary += "Build Successful\n"
|
||||||
vote = 1
|
vote = 1
|
||||||
notify = "NONE"
|
notify = "OWNER" if notify_on_success else "NONE"
|
||||||
|
|
||||||
# Reference:
|
# Reference:
|
||||||
# https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-review
|
# https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-review
|
||||||
|
@ -192,9 +195,11 @@ def get_pipeline_summary(build_url):
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
summary = get_pipeline_summary(args.build_url)
|
summary = get_pipeline_summary(args.build_url, args.notify_on_success)
|
||||||
|
|
||||||
|
print()
|
||||||
print(summary["message"])
|
print(summary["message"])
|
||||||
|
print(f"notify: {summary['notify']}")
|
||||||
|
|
||||||
if args.output:
|
if args.output:
|
||||||
with open(args.output, "w") as handle:
|
with open(args.output, "w") as handle:
|
||||||
|
|
|
@ -1,6 +1,24 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -e
|
||||||
|
|
||||||
./pipeline_summary.py "$PIPELINE_BUILD_URL" -o gerrit_report.json
|
# By default, a mail notification will only be sent if the gerrit verification
|
||||||
|
# failed. Add yourself here to also receive notifications on successs.
|
||||||
|
notify_on_success_users="
|
||||||
|
pespin
|
||||||
|
"
|
||||||
|
|
||||||
|
arg_notify=""
|
||||||
|
for i in $notify_on_success_users; do
|
||||||
|
if [ "$GERRIT_PATCHSET_UPLOADER_NAME" = "$i" ]; then
|
||||||
|
arg_notify="--notify-on-success"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
./pipeline_summary.py "$PIPELINE_BUILD_URL" \
|
||||||
|
-o gerrit_report.json \
|
||||||
|
$arg_notify
|
||||||
|
|
||||||
ssh \
|
ssh \
|
||||||
-p "$GERRIT_PORT" \
|
-p "$GERRIT_PORT" \
|
||||||
|
|
Loading…
Reference in New Issue