From 8503494bd4439171fef969f0f4b2354b703f2253 Mon Sep 17 00:00:00 2001
From: Esben Haabendal <esben.haabendal@huawei.com>
Date: Thu, 14 Jul 2022 17:00:51 +0200
Subject: [PATCH] CI: Add support for $CI_ONIRO_PARALLEL_BUILD_MAX_LOADAVG

This introduces support for new variable to be set by gitlab-runner.

It should be set to the load average that parallel builds should try to not go
above.  Build tools such as make and ninja is expected to not spawn no jobs
if/when load average is higher than this number.

Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
---
 .gitlab-ci.yml | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f92ed9b4..9769b00d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -154,6 +154,11 @@ stages:
     - echo "BB_NUMBER_THREADS = \"$MAX_JOBS\"" >> conf/auto.conf
     - echo "PARALLEL_MAKE = \"-j$MAX_JOBS\"" >> conf/auto.conf
     - echo "NINJA_ARGS:append = \" -j$MAX_JOBS\"" >> conf/auto.conf
+    - MAX_LOADAVG="${CI_ONIRO_PARALLEL_BUILD_MAX_LOADAVG}"
+    - if [ -n "$MAX_LOADAVG" ] ; then
+        echo "PARALLEL_MAKE += \"-l$MAX_LOADAVG\"" ;
+        echo "NINJA_ARGS:append = \" -l$MAX_LOADAVG\"" ;
+      fi >> conf/auto.conf
     - echo "RM_WORK_EXCLUDE += \"${RECIPE}\"" >> conf/auto.conf
     - echo "OPENHARMONY_VERSION = \"${OPENHARMONY_VERSION}\"" >> conf/auto.conf
   script:
@@ -433,6 +438,10 @@ ohos:
     - ./oniro/setup.sh
     - MAX_JOBS="${CI_ONIRO_PARALLEL_BUILD_MAX_JOBS:-$(nproc)}"
     - NINJA_ARGS="--ninja-args -j$MAX_JOBS"
+    - MAX_LOADAVG="${CI_ONIRO_PARALLEL_BUILD_MAX_LOADAVG}"
+    - if [ -n "$MAX_LOADAVG" ] ; then
+        NINJA_ARGS+=" --ninja-args -l$MAX_LOADAVG" ;
+      fi
     - ./build.sh --product-name Hi3516DV300 $NINJA_ARGS
 
 # Job for triggering a prune of the sstate-cache mirror in runner persistent
-- 
GitLab