mirror of
git://git.yoctoproject.org/yocto-autobuilder-helper.git
synced 2025-07-19 20:59:02 +02:00
75 lines
2.2 KiB
Python
Executable File
75 lines
2.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Iterate over a set of configurations from json.conf, calling setup-config for each one, then running the build.
|
|
#
|
|
# Called with $1 - The json file containing the repositories to use
|
|
# $2 - Where the artefacts were published
|
|
# $3 - The build/release 'name' for release purposes
|
|
# $4 - The shared repos directory (to resolve the repo revision hashes)
|
|
#
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import errno
|
|
|
|
import utils
|
|
|
|
if len(sys.argv) != 6:
|
|
print("Incorrect number of parameters, please call as %s <send-email> <repojson> <publish-dir> <release-name> <sharedrepodir>" % sys.argv[0])
|
|
sys.exit(1)
|
|
|
|
send = sys.argv[1]
|
|
repojson = sys.argv[2]
|
|
publish = sys.argv[3]
|
|
rel_name = sys.argv[4]
|
|
repodir = sys.argv[5]
|
|
|
|
if send != "True" or publish == "None" or rel_name == "None":
|
|
utils.printheader("Not sending QA email")
|
|
sys.exit(0)
|
|
|
|
scriptsdir = os.path.dirname(os.path.realpath(__file__))
|
|
ourconfig = utils.loadconfig(__file__)
|
|
|
|
with open(repojson) as f:
|
|
repos = json.load(f)
|
|
|
|
buildhashes = ""
|
|
for repo in sorted(repos.keys()):
|
|
# Need the finalised revisions (not 'HEAD')
|
|
targetrepodir = "%s/%s" % (repodir, repo)
|
|
revision = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=targetrepodir).decode('utf-8').strip()
|
|
buildhashes += "%s: %s\n" % (repo, revision)
|
|
|
|
web_root = ourconfig.get('WEBPUBLISH_DIR')
|
|
web_url = ourconfig.get('WEBPUBLISH_URL')
|
|
|
|
email = ""
|
|
mailto = ourconfig.get("QAMAIL_TO")
|
|
if mailto:
|
|
email += "To: " + mailto + "\n"
|
|
mailcc = ourconfig.get("QAMAIL_CC")
|
|
if mailcc:
|
|
email += "Cc: " + mailcc + "\n"
|
|
mailbcc = ourconfig.get("QAMAIL_BCC")
|
|
if mailbcc:
|
|
email += "Bcc: " + mailbcc + "\n"
|
|
|
|
email += "Subject: " + "QA notification for completed autobuilder build (%s)\n" % rel_name
|
|
email += '''\n
|
|
A build flagged for QA (%s) was completed on the autobuilder and is available at:\n\n
|
|
%s\n\n
|
|
Build hash information: \n
|
|
%s
|
|
|
|
\nThis is an automated message from the Yocto Project Autobuilder\nGit: git://git.yoctoproject.org/yocto-autobuilder2\nEmail: richard.purdie@linuxfoundation.org\n
|
|
|
|
''' % (rel_name, publish.replace(web_root, web_url), buildhashes)
|
|
|
|
utils.printheader("Sending QA email")
|
|
subprocess.check_call('echo "' + email +' " | sendmail -t', shell=True)
|
|
|
|
|