diff mbox series

[yocto-autobuilder-helper] send_qa_email: Use bitbake-setup oecore directory rather than repos

Message ID 20260803141145.1560411-1-richard.purdie@linuxfoundation.org
State New
Headers show
Series [yocto-autobuilder-helper] send_qa_email: Use bitbake-setup oecore directory rather than repos | expand

Commit Message

Richard Purdie Aug. 3, 2026, 2:11 p.m. UTC
bitbake-setup's layers and repos can be out of sync with each other since they
run in series. Prefer the layers directory if present since that is what the
build will have used.

[YOCTO #16216]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 scripts/send_qa_email.py | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/scripts/send_qa_email.py b/scripts/send_qa_email.py
index e3de4b5..e02d47c 100755
--- a/scripts/send_qa_email.py
+++ b/scripts/send_qa_email.py
@@ -150,8 +150,9 @@  def send_qa_email():
 
     utils.filterrepojson(repos)
 
-    resulttool = os.path.dirname(args.repojson) + "/build/layers/openembedded-core/scripts/resulttool"
-    querytool = os.path.dirname(args.repojson) + "/build/layers/openembedded-core/scripts/yocto_testresults_query.py"
+    oecorerepodir = os.path.dirname(args.repojson) + "/build/layers/openembedded-core"
+    resulttool = oecorerepodir + "/scripts/resulttool"
+    querytool = oecorerepodir + "/scripts/yocto_testresults_query.py"
 
     buildtoolsdir = os.path.dirname(args.repojson) + "/build/buildtools"
     if os.path.exists(buildtoolsdir):
@@ -168,8 +169,7 @@  def send_qa_email():
     if 'oecore' in repos and os.path.exists(resulttool) and os.path.exists(querytool) and args.results_dir:
         utils.printheader("Processing test report")
         # Need the finalised revisions (not 'HEAD')
-        targetrepodir = "%s/oecore" % (repodir)
-        revision = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=targetrepodir).decode('utf-8').strip()
+        revision = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=oecorerepodir).decode('utf-8').strip()
         branch = repos['oecore']['branch']
         repo = repos['oecore']['url']
 
@@ -233,10 +233,10 @@  def send_qa_email():
 
             utils.printheader("Processing regression report")
             try:
-                regression_base, regression_target = get_regression_base_and_target(targetbranch, basebranch, args.release, targetrepodir, test_results_url, log)
+                regression_base, regression_target = get_regression_base_and_target(targetbranch, basebranch, args.release, oecorerepodir, test_results_url, log)
                 if regression_base and regression_target:
                     log.info(f"Generating regression report between {regression_base} and {regression_target}")
-                    generate_regression_report(querytool, targetrepodir, regression_base, regression_target, tempdir, args.results_dir, log)
+                    generate_regression_report(querytool, oecorerepodir, regression_base, regression_target, tempdir, args.results_dir, log)
                 else:
                     log.info("Can not guess regression base and/or target, skip regression report")
             except subprocess.CalledProcessError as e:
@@ -257,13 +257,22 @@  def send_qa_email():
 
     utils.printheader("Generating QA email")
 
+    layersdir = os.path.dirname(args.repojson) + "/build/layers/"
     buildhashes = ""
     for repo in sorted(repos.keys()):
         # gplv2 is no longer built/tested in master
         if repo == "meta-gplv2":
             continue
+        layerdir = layersdir + repo "/"
+        if repo == "oecore":
+            layerdir = layersdir + "openembedded-core/"
+        # Try to use bitbake-setup layers, fall back to repos/
+        if os.path.exists(layerdir):
+            targetrepodir = layerdir
+        else:
+            targetrepodir = "%s/%s" % (repodir, repo)
+
         # 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)