diff --git a/ci/axiom.yml b/ci/axiom.yml new file mode 100644 index 000000000..1dbf8bd65 --- /dev/null +++ b/ci/axiom.yml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json + +header: + version: 14 + + +repos: + meta-qcom: + url: https://github.com/qualcomm-linux/meta-qcom + branch: master + layers: + meta-axiom-ci: + "": + meta-openembedded: + url: https://github.com/openembedded/meta-openembedded + layers: + meta-oe: + meta-xfce: + meta-gnome: + meta-python: + meta-networking: + meta-multimedia: + +local_conf_header: + base: | + DISTROOVERRIDES:prepend = "qcom-axiom-ci:" diff --git a/meta-axiom-ci/README.md b/meta-axiom-ci/README.md new file mode 100644 index 000000000..ee0f4052e --- /dev/null +++ b/meta-axiom-ci/README.md @@ -0,0 +1,28 @@ +# meta-axiom-ci + +## Introduction + +OpenEmbedded/Yocto Project layer for using the Qualcomm internal Axiom CI on Qualcomm based platforms. + +The official documentation describes Axiom as such: +> Axiom is an enterprise-level integrated automation system and a unified source of truth for test data. It covers all aspects of the test process including planning, execution, reporting and telematics. + +This layer extends a small set of image recipes to add the tools and configs needed to run on the Axiom CI. + +This layer depends on: + +``` +URI: https://github.com/openembedded/openembedded-core.git +layers: meta +branch: master +revision: HEAD +``` + +``` +URI: https://github.com/openembedded/meta-openembedded.git +layers: meta-oe, meta-networking +branch: master +revision: HEAD +``` + + diff --git a/meta-axiom-ci/classes-recipe/axiom-image.bbclass b/meta-axiom-ci/classes-recipe/axiom-image.bbclass new file mode 100644 index 000000000..e0c463745 --- /dev/null +++ b/meta-axiom-ci/classes-recipe/axiom-image.bbclass @@ -0,0 +1,30 @@ +# Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. +# SPDX-License-Identifier: MIT + +# Class to add the dependencies needed for the current Axiom test framework + +CORE_IMAGE_EXTRA_INSTALL:append:qcom-axiom-ci = " \ + android-tools-adbd \ + bluez5 \ + networkmanager-nmcli iproute2-ip \ + usbutils \ + iperf3 \ + net-tools \ + weston \ + pipewire \ + dbus-ptest \ + busybox-ptest \ + openssh-ptest \ + openssl-ptest \ + valgrind \ + kernel-modules \ +" + +# Add ssh server +IMAGE_FEATURES:append:qcom-axiom-ci = " ssh-server-openssh" + +enable_adbd_at_boot () { + touch ${IMAGE_ROOTFS}/etc/usb-debugging-enabled +} + +ROOTFS_POSTPROCESS_COMMAND += "enable_adbd_at_boot" diff --git a/meta-axiom-ci/conf/layer.conf b/meta-axiom-ci/conf/layer.conf new file mode 100644 index 000000000..0c5ace207 --- /dev/null +++ b/meta-axiom-ci/conf/layer.conf @@ -0,0 +1,14 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a packages directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "qcom-axiom-ci" +BBFILE_PATTERN_qcom-axiom-ci := "^${LAYERDIR}/" +BBFILE_PRIORITY_qcom-axiom-ci = "6" + +LAYERDEPENDS_qcom-axiom-ci = "core openembedded-layer networking-layer qcom" +LAYERSERIES_COMPAT_qcom-axiom-ci = "styhead walnascar" + diff --git a/meta-axiom-ci/recipes-core/images/core-image-base.bbappend b/meta-axiom-ci/recipes-core/images/core-image-base.bbappend new file mode 100644 index 000000000..34316a90a --- /dev/null +++ b/meta-axiom-ci/recipes-core/images/core-image-base.bbappend @@ -0,0 +1,4 @@ +QCOMINHERITS = "core-image" +QCOMINHERITS:qcom-axiom-ci = "axiom-image" + +inherit ${QCOMINHERITS} diff --git a/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend new file mode 100644 index 000000000..9930fe624 --- /dev/null +++ b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS:prepend:qcom-axiom-ci := "${THISDIR}/${PN}:" + +# Include additional kernel configs. +SRC_URI:append:qcom-axiom-ci = " \ + file://configs/qcom-axiom-ci.cfg \ +" + diff --git a/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg new file mode 100644 index 000000000..b8ddb3298 --- /dev/null +++ b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg @@ -0,0 +1,3 @@ +# don't tamper with adbd +# CONFIG_USB_MASS_STORAGE is not set +