From 56b40702d9b2bafb17ddcc8b4caa7e5fae124a9c Mon Sep 17 00:00:00 2001
From: Pavel Zhukov <pavel.zhukov@huawei.com>
Date: Mon, 23 May 2022 09:51:02 +0200
Subject: [PATCH] ci: Add abi-checker

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
---
 .oniro-ci/build-generic.yaml         | 17 +++++++++++++++--
 .oniro-ci/machines-and-flavours.yaml |  2 +-
 manifests/ci.xml                     | 10 ++++++++++
 3 files changed, 26 insertions(+), 3 deletions(-)
 create mode 100644 manifests/ci.xml

diff --git a/.oniro-ci/build-generic.yaml b/.oniro-ci/build-generic.yaml
index 67abc4ad..e91e9678 100644
--- a/.oniro-ci/build-generic.yaml
+++ b/.oniro-ci/build-generic.yaml
@@ -87,7 +87,7 @@
     CI_ONIRO_BB_LOCAL_CONF_SSTATE_DIR: $CI_ONIRO_RUNNER_PERSISTENT_STORAGE/$CI_ONIRO_BUILD_CACHE/bitbake/sstate-cache
     CI_ONIRO_BB_LOCAL_CONF_IMAGE_VERSION_SUFFIX: ""
     CI_ONIRO_BB_LOCAL_CONF_CVE_CHECK_DB_DIR: "$${TMPDIR}/CVE_CHECK/"
-    CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: cve-check
+    CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: cve-check 
     CI_ONIRO_BB_LOCAL_CONF_plus_equals_USER_CLASSES: "buildstats buildstats-summary"
     CI_ONIRO_DEVTOOL_RECIPE_NAME: ""
     CI_ONIRO_DEVTOOL_LAYER_PATH: ""
@@ -162,7 +162,14 @@
           | sed -e 's/^CI_ONIRO_BB_LOCAL_CONF_plus_equals_//g' -e 's/"/\\"/g' -e 's/=/ += "/g' -e 's/$/"/g' \
           | sort \
           | tee -a conf/local.conf )
-
+    - |
+      ( set +o pipefail;      
+        env \
+          | grep -E '^CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_[A-Z_0-9]+=' \
+          | sed -e 's/^CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_//g' -e 's/"/\\"/g' -e 's/=/ += "/g' -e 's/$/"/g' \
+          | sort \
+          | tee -a conf/bblayers.conf )
+            
     # Sanity check: disallow using public build cache with a specific setting
     # in local.conf. The list of settings may grow over time.
     - |
@@ -407,6 +414,12 @@
 .build:
  extends: .build-recipe
 
+.check-abi:
+  variables:
+    CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: abicheck
+    CI_ONIRO_MANIFEST_NAME: manifests/ci.xml
+    CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_BBLAYERS: "../meta-binaryaudit"
+
 # This job is documented in docs/ci/hidden-jobs/build-docs.rst
 .build-docs:
   interruptible: true
diff --git a/.oniro-ci/machines-and-flavours.yaml b/.oniro-ci/machines-and-flavours.yaml
index 19addc37..56552c9c 100644
--- a/.oniro-ci/machines-and-flavours.yaml
+++ b/.oniro-ci/machines-and-flavours.yaml
@@ -32,7 +32,7 @@
       allow_failure: true
 
 .linux-qemu-x86:
-  extends: .build-wic-image
+  extends: [.build-wic-image, .check-abi]
   variables:
     MACHINE: qemux86
     CI_ONIRO_BUILD_FLAVOUR: linux
diff --git a/manifests/ci.xml b/manifests/ci.xml
new file mode 100644
index 00000000..5768d945
--- /dev/null
+++ b/manifests/ci.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+SPDX-License-Identifier: Apache-2.0
+SPDX-FileCopyrightText: Huawei Inc.
+-->
+<manifest>
+  <include name="manifests/default.xml" />
+  <project name="oniro-core/meta-binaryaudit" remote="eclipse" revision="oniro/kirkstone" path="meta-binaryaudit" />
+</manifest>
+
-- 
GitLab