From 2de8023b223e792e545dfd9e6ee3e28c2f35b588 Mon Sep 17 00:00:00 2001
From: Chase Qi <chase.qi@linaro.org>
Date: Fri, 22 Jul 2022 10:17:48 +0800
Subject: [PATCH] .oniro-ci: use squad build ID to query test pass percentage

Use squad build ID to query test pass percentage.

The lava-badge job is only needed by scheduled pipeline as calculating
pass rate of full testing makes more sense. Enabling the job here for
MR in draft status is mainly for debugging purpose.

Signed-off-by: Chase Qi <chase.qi@linaro.org>
---
 .oniro-ci/test-generic.yaml | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/.oniro-ci/test-generic.yaml b/.oniro-ci/test-generic.yaml
index a777500b..224cbd79 100644
--- a/.oniro-ci/test-generic.yaml
+++ b/.oniro-ci/test-generic.yaml
@@ -144,11 +144,19 @@
   stage: report
   variables:
     GIT_STRATEGY: none
+    CI_SQUAD_INSTANCE: "https://squadp.svc.ostc-eu.dev"
   script:
     - |
       set -x
-      pass_percentage="$(curl --silent $CI_SQUAD_INSTANCE/api/builds/$CI_PIPELINE_ID/status/ | jq -r '.pass_percentage')"
-      success_rate=`printf "%.2f" $pass_percentage`
+      squad_build_id="$(curl --silent "$CI_SQUAD_INSTANCE/api/builds/?version=$CI_PIPELINE_ID" | jq -r '.results[0].id')"
+      status_uri="$CI_SQUAD_INSTANCE/api/builds/$squad_build_id/status/"
+      pass_percentage="$(curl --silent $status_uri | jq -r '.pass_percentage')"
+      if [ "pass_percentage" != "null" ]; then
+        success_rate=`printf "%.2f" $pass_percentage`
+      else
+        echo "ERROR: Failed to query pass percentage via $status_uri"
+        exit 1
+      fi
       anybadge --label=lava-test --value=${success_rate} --suffix='%' --file=lava-test.svg 50=red 60=orange 80=yellow 100=green
       set +x
   artifacts:
@@ -158,3 +166,6 @@
   rules:
     # Run the build when it is scheduled.
     - if: $CI_PIPELINE_SOURCE == "schedule"
+    # Do not run pipelines for draft merge requests unless manually triggered.
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TITLE =~ /^(wip|draft):.*/i'
+      when: manual
-- 
GitLab