<div dir="ltr">The UNH lab no longer runs tests for this LTS version. It could be removed.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 4, 2023 at 9:58 AM Aaron Conole <<a href="mailto:aconole@redhat.com">aconole@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Adam Hassick <<a href="mailto:ahassick@iol.unh.edu" target="_blank">ahassick@iol.unh.edu</a>> writes:<br>
<br>
> From: Owen Hilyard <<a href="mailto:ohilyard@iol.unh.edu" target="_blank">ohilyard@iol.unh.edu</a>><br>
><br>
> Adds a yaml file used to define what containers should be built, what<br>
> packages the containers should have, what platforms to build for and how they<br>
> should be tagged.<br>
><br>
> Also adds a JSON schema, which can be used to validate that the<br>
> inventory file is well-formed.<br>
><br>
> Signed-off-by: Owen Hilyard <<a href="mailto:ohilyard@iol.unh.edu" target="_blank">ohilyard@iol.unh.edu</a>><br>
> Signed-off-by: Adam Hassick <<a href="mailto:ahassick@iol.unh.edu" target="_blank">ahassick@iol.unh.edu</a>><br>
> ---<br>
>  containers/template_engine/inventory.yaml     | 470 ++++++++++++++++++<br>
>  .../template_engine/inventory_schema.json     | 221 ++++++++<br>
>  2 files changed, 691 insertions(+)<br>
>  create mode 100644 containers/template_engine/inventory.yaml<br>
>  create mode 100644 containers/template_engine/inventory_schema.json<br>
><br>
> diff --git a/containers/template_engine/inventory.yaml b/containers/template_engine/inventory.yaml<br>
> new file mode 100644<br>
> index 0000000..31dbdb6<br>
> --- /dev/null<br>
> +++ b/containers/template_engine/inventory.yaml<br>
> @@ -0,0 +1,470 @@<br>
> +# SPDX-License-Identifier: BSD-3-Clause<br>
> +# Copyright (c) 2022 University of New Hampshire<br>
> +---<br>
> +abi:<br>
> +  # versions should also include the abi versions for all stable ABIs.<br>
> +  versions:<br>
> +    # - dpdk_version: # LTS - 3<br>
> +    #     major: 20<br>
> +    #     minor: 11<br>
> +    #     revision: 0<br>
> +    #     git_tag: "20.11"<br>
> +    #   abi_version:<br>
> +    #     major: 21<br>
> +    #     minor: 0<br>
<br>
Why is this commented out?<br>
<br>
> +    - dpdk_version: # LTS - 2<br>
> +        major: 21<br>
> +        minor: 11<br>
> +        revision: 0<br>
> +        git_tag: "21.11"<br>
> +      abi_version:<br>
> +        major: 22<br>
> +        minor: 0<br>
> +    - dpdk_version:<br>
> +        major: 22 # LTS - 1<br>
> +        minor: 11<br>
> +        revision: 1<br>
> +        git_tag: "tags/v22.11.1"<br>
> +      abi_version:<br>
> +        major: 23<br>
> +        minor: 10 # .xml comparison<br>
> +    - dpdk_version:<br>
> +        major: 22 # LTS<br>
> +        minor: 11<br>
> +        revision: 1<br>
> +        git_tag: "tags/v22.11.1"<br>
> +      abi_version:<br>
> +        major: 23<br>
> +        minor: 11 # .so comparison<br>
> +<br>
> +dockerfiles:<br>
> +  groups:<br>
> +    all:<br>
> +      package_manager_command: "NO_INSTALL_COMMAND_SET"<br>
> +      parent: "NONE"<br>
> +      packages:<br>
> +        - gcc<br>
> +        - make<br>
> +        - git<br>
> +        - sudo<br>
> +        - curl<br>
> +        - automake<br>
> +        - autoconf<br>
> +        - flex<br>
> +        - bison<br>
> +        - bc<br>
> +    rpm:<br>
> +      parent: "all"<br>
> +      package_manager_command: yum install -y<br>
> +      packages:<br>
> +        - diffutils<br>
> +        - pkg-config<br>
> +        - python3<br>
> +        - python3-pip<br>
> +        - librdmacm<br>
> +        - rdma-core-devel<br>
> +        - libmnl-devel<br>
> +        - ccache<br>
> +        - zip<br>
> +        - autoconf<br>
> +        - libbpf-devel<br>
> +    redhat_family:<br>
> +      parent: "rpm"<br>
> +      packages: []<br>
> +    fedora:<br>
> +      parent: "redhat_family"<br>
> +      packages:<br>
> +        - python3-pyelftools<br>
> +        - zip<br>
> +        - clang<br>
> +        - ninja-build<br>
> +        - elfutils-libelf-devel<br>
> +        - jansson-devel<br>
> +        - libatomic<br>
> +        - libpcap-devel<br>
> +        - numactl-devel<br>
> +        - findutils<br>
> +        - libtool<br>
> +        - elfutils-devel<br>
> +        - libxml2-devel<br>
> +        - libabigail<br>
> +        - openssl-devel<br>
> +    fedora_coverity:<br>
> +      parent: fedora<br>
> +      packages: []<br>
> +    fedora_clang:<br>
> +      parent: fedora<br>
> +      packages: []<br>
> +    centos8:<br>
> +      parent: "redhat_family"<br>
> +      packages:<br>
> +        - elfutils-libelf-devel<br>
> +        - jansson-devel<br>
> +        - libatomic<br>
> +        - libpcap-devel<br>
> +        - numactl-devel<br>
> +        - libabigail<br>
> +        - openssl-devel<br>
> +    centos9:<br>
> +      parent: "redhat_family"<br>
> +      package_manager_command: "yum install --allowerasing -y"<br>
> +      packages:<br>
> +        - elfutils-libelf-devel<br>
> +        - jansson-devel<br>
> +        - libatomic<br>
> +        - libpcap-devel<br>
> +        - numactl-devel<br>
> +        - libtool<br>
> +        - g++<br>
> +        - elfutils-devel<br>
> +        - libxml2-devel<br>
> +        - openssl-devel<br>
> +    rhel:<br>
> +      parent: "redhat_family"<br>
> +      package_manager_command: "yum install -y"<br>
> +      packages:<br>
> +        - elfutils-libelf-devel<br>
> +        - jansson-devel<br>
> +        - libatomic<br>
> +        - libpcap-devel<br>
> +        - numactl-devel<br>
> +        - openssl-devel<br>
> +        - libabigail<br>
> +    rhel7:<br>
> +      parent: "rhel"<br>
> +      packages:<br>
> +        - ninja-build<br>
> +    rhel8:<br>
> +      parent: "rhel"<br>
> +      package_manager_command: "yum --allowerasing install -y"<br>
> +      packages:<br>
> +        - ninja-build<br>
> +        - libxml2-devel<br>
> +    rhel9:<br>
> +      parent: "rhel"<br>
> +      package_manager_command: "yum --allowerasing install -y"<br>
> +      packages:<br>
> +        - libxml2-devel<br>
> +    opensuse:<br>
> +      parent: "rpm"<br>
> +      package_manager_command: "zypper install -y"<br>
> +      packages:<br>
> +        - python3-pyelftools<br>
> +        - ninja<br>
> +        - gzip<br>
> +        - libelf-devel<br>
> +        - libjansson-devel<br>
> +        - librdmacm1<br>
> +        - libatomic1<br>
> +        - libnuma-devel<br>
> +        - libabigail-tools<br>
> +        - tar<br>
> +        - openssl-devel<br>
> +    alpine:<br>
> +      parent: "all"<br>
> +      package_manager_command: "apk add"<br>
> +      packages:<br>
> +        - bsd-compat-headers<br>
> +        - ccache<br>
> +        - jansson-dev<br>
> +        - libarchive-dev<br>
> +        - libbpf-dev<br>
> +        - libc-dev<br>
> +        - libpcap-dev<br>
> +        - linux-headers<br>
> +        - ninja<br>
> +        - numactl-dev<br>
> +        - openssl-dev<br>
> +        - py3-pip<br>
> +        - py3-elftools<br>
> +        - py3-setuptools<br>
> +        - py3-wheel<br>
> +        - zlib-dev<br>
> +        - python3<br>
> +        - bash<br>
> +        - zip<br>
> +        - meson<br>
> +    arch:<br>
> +      parent: "all"<br>
> +      package_manager_command: "pacman -Syu --noconfirm"<br>
> +      packages:<br>
> +        - glibc<br>
> +        - cmake<br>
> +        - ninja<br>
> +        - pandoc<br>
> +        - python<br>
> +        - python-docutils<br>
> +        - ethtool<br>
> +        - file<br>
> +        - fakeroot<br>
> +        - pkg-config<br>
> +        - numactl<br>
> +        - elfutils<br>
> +        - gawk<br>
> +        - diffutils<br>
> +        - python-pip<br>
> +        - libabigail<br>
> +        - openssl<br>
> +        - libbpf<br>
> +    debian:<br>
> +      parent: "all"<br>
> +      package_manager_command: "apt-get update && apt-get install --no-install-recommends -y"<br>
> +      packages:<br>
> +        - libnuma-dev<br>
> +        - zip<br>
> +        - librdmacm1<br>
> +        - libcrypto++-dev<br>
> +        - python3-pyelftools<br>
> +        - libxml2-dev<br>
> +        - libelf-dev<br>
> +        - libpcap-dev<br>
> +        - libjansson-dev<br>
> +        - python3-setuptools<br>
> +        - autoconf<br>
> +        - pkg-config<br>
> +        - libtool<br>
> +        - ccache<br>
> +        - libatomic1<br>
> +        - python3-wheel<br>
> +        - libdw-dev<br>
> +        - rdma-core<br>
> +        - ninja-build<br>
> +        - automake<br>
> +        - librdmacm-dev<br>
> +        - libmnl-dev<br>
> +        - python3-pip<br>
> +        - build-essential<br>
> +        - aspell-en<br>
> +        - parallel<br>
> +        - python3-grpcio<br>
> +        - lcov<br>
> +        - libbpf-dev<br>
> +        - libssl-dev<br>
> +    debian10:<br>
> +      parent: "debian"<br>
> +      packages: []<br>
> +    debian11:<br>
> +      parent: "debian"<br>
> +      packages:<br>
> +        - nasm<br>
> +    debian11_arm_ipsec:<br>
> +      parent: "debian11"<br>
> +      packages: []<br>
> +    ubuntu:<br>
> +      parent: 'debian'<br>
> +      packages: []<br>
> +    ubuntu18.04:<br>
> +      parent: "ubuntu"<br>
> +      packages: []<br>
> +    ubuntu20.04:<br>
> +      parent: "ubuntu"<br>
> +      packages:<br>
> +        - python3-grpcio<br>
> +        - lcov<br>
> +        - jq<br>
> +        - default-jre<br>
> +        - nodejs<br>
> +    ubuntu22.04:<br>
> +      parent: "ubuntu"<br>
> +      packages:<br>
> +        - python3-grpcio<br>
> +        - lcov<br>
> +        - abigail-tools<br>
> +        - jq<br>
> +    ubuntu_cross: # x86 -> ARM<br>
> +      parent: "ubuntu20.04"<br>
> +      packages:<br>
> +        - clang<br>
> +        - llvm<br>
> +        - llvm-dev<br>
> +        - llvm-runtime<br>
> +        - lld<br>
> +        - gcc-aarch64-linux-gnu<br>
> +        - libgcc-9-dev-arm64-cross<br>
> +        - libatomic1-arm64-cross<br>
> +        - libc6-dev-arm64-cross<br>
> +        - pkg-config-aarch64-linux-gnu<br>
> +        - dpkg-dev<br>
> +        - gcc-arm-linux-gnueabihf<br>
> +        - libc6-dev-armhf-cross<br>
> +        - pkg-config-arm-linux-gnueabihf<br>
> +    ubuntu_sve:<br>
> +      parent: "ubuntu20.04"<br>
> +      packages:<br>
> +        - gcc-10<br>
> +  targets:<br>
> +    # Alpine<br>
> +    - name: alpine_compile<br>
> +      group: "alpine"<br>
> +      base_image: alpine<br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      force_disable_abi: true<br>
> +      minimum_dpdk_version:<br>
> +        major: 22<br>
> +        minor: 0<br>
> +        revision: 0<br>
> +      extra_information:<br>
> +        amd64_environment_id: 45<br>
> +        arm64_environment_id: 75<br>
> +<br>
> +    # Arch<br>
> +    - name: arch_compile<br>
> +      group: "arch"<br>
> +      base_image: archlinux:base<br>
> +      platforms: [linux/amd64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 26<br>
> +<br>
> +    - name: fedora37_compile<br>
> +      group: "fedora"<br>
> +      base_image: fedora:37<br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 69<br>
> +        arm64_environment_id: 70<br>
> +<br>
> +    - name: fedora38_compile<br>
> +      group: "fedora"<br>
> +      base_image: fedora:38<br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 71<br>
> +        arm64_environment_id: 72<br>
> +<br>
> +    - name: fedora38_clang<br>
> +      group: "fedora_clang"<br>
> +      base_image: fedora:38<br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 73<br>
> +        arm64_environment_id: 74<br>
> +<br>
> +    - name: fedora37_coverity<br>
> +      group: "fedora_coverity"<br>
> +      base_image: fedora:37<br>
> +      force_disable_abi: true<br>
> +      requires_coverity: true<br>
> +      platforms: [linux/amd64]<br>
> +<br>
> +    # CentOs<br>
> +    - name: centosstream8_compile<br>
> +      group: "centos8"<br>
> +      base_image: <a href="http://quay.io/centos/centos:stream8" rel="noreferrer" target="_blank">quay.io/centos/centos:stream8</a><br>
> +      platforms: [linux/amd64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 39<br>
> +<br>
> +    - name: centosstream9_compile<br>
> +      group: "centos9"<br>
> +      base_image: <a href="http://quay.io/centos/centos:stream9" rel="noreferrer" target="_blank">quay.io/centos/centos:stream9</a><br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 53<br>
> +        arm64_environment_id: 63<br>
> +<br>
> +    # RHEL<br>
> +    - name: rhel7_compile<br>
> +      group: "rhel7"<br>
> +      base_image: <a href="http://registry.access.redhat.com/ubi7/ubi" rel="noreferrer" target="_blank">registry.access.redhat.com/ubi7/ubi</a><br>
> +      platforms: [linux/amd64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 36<br>
> +<br>
> +    - name: rhel8_compile<br>
> +      group: "rhel8"<br>
> +      base_image: <a href="http://registry.access.redhat.com/ubi8/ubi" rel="noreferrer" target="_blank">registry.access.redhat.com/ubi8/ubi</a><br>
> +      platforms: [linux/amd64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 37<br>
> +<br>
> +    - name: rhel9_compile<br>
> +      group: "rhel9"<br>
> +      base_image: <a href="http://registry.access.redhat.com/ubi9/ubi" rel="noreferrer" target="_blank">registry.access.redhat.com/ubi9/ubi</a><br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 76<br>
> +        arm64_environment_id: 77<br>
> +<br>
> +    # OpenSuse<br>
> +    - name: opensuse-leap15_compile<br>
> +      group: "opensuse"<br>
> +      base_image: opensuse/leap:15<br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 25<br>
> +        arm64_environment_id: 67<br>
> +<br>
> +    # Debian<br>
> +    - name: debian10_compile # debian 10<br>
> +      group: "debian10"<br>
> +      base_image: "debian:buster"<br>
> +      libabigail_revision: libabigail-2.2<br>
> +      platforms: [linux/amd64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 52<br>
> +<br>
> +    - name: debian11_compile # debian 11<br>
> +      group: "debian11"<br>
> +      base_image: "debian:bullseye"<br>
> +      libabigail_revision: libabigail-2.2<br>
> +      platforms:<br>
> +        - linux/amd64<br>
> +        - linux/arm64<br>
> +      extra_information:<br>
> +        amd64_environment_id: 51<br>
> +        arm64_environment_id: 64<br>
> +<br>
> +    # Ubuntu<br>
> +    - name: ubuntu20.04_compile<br>
> +      group: "ubuntu20.04"<br>
> +      base_image: "ubuntu:20.04"<br>
> +      platforms: [linux/amd64, linux/arm64]<br>
> +      extra_tags:<br>
> +        - $R/ubuntu20.04_libabigail:latest<br>
> +        - $R/ubuntu20.04_libabigail:$T<br>
> +        - $R/ubuntu20.04_spell-check:latest<br>
> +        - $R/ubuntu20.04_spell-check:$T<br>
> +        - $R/ubuntu20.04_sonarscanner:latest<br>
> +        - $R/ubuntu20.04_sonarscanner:$T<br>
> +      extra_information:<br>
> +        amd64_environment_id: 38<br>
> +        arm64_environment_id: 62<br>
> +<br>
> +    # x86 -> ARM cross compile<br>
> +    - name: ubuntu20.04_cross<br>
> +      group: "ubuntu_cross"<br>
> +      base_image: "ubuntu:20.04"<br>
> +      platforms: [linux/amd64]<br>
> +      cross_file: "config/arm/arm64_armv8_linux_gcc"<br>
> +      extra_information:<br>
> +        amd64_environment_id: 47<br>
> +<br>
> +    # Also, x86 -> ARM cross compile (for SVE test)<br>
> +    - name: ubuntu20.04_sve_compile<br>
> +      group: "ubuntu_sve"<br>
> +      base_image: "arm64v8/ubuntu:20.04"<br>
> +      platforms: [linux/arm64]<br>
> +      extra_information:<br>
> +        arm64_environment_id: 46<br>
> +<br>
> +    # TEMPORARY: This has the forked IPsec lib developed by ARM. This causes issues on older LTS versions of DPDK.<br>
> +    # Once all supported and tested LTS versions no longer break when this lib is installed, recombine with debian11_compile.<br>
> +    - name: debian11_arm_ipsec<br>
> +      group: "debian11_arm_ipsec"<br>
> +      base_image: "debian:bullseye"<br>
> +      platforms: [linux/arm64]<br>
> +      force_disable_abi: true<br>
> +      extra_tags:<br>
> +        - $R/debian11_zuc_compile:latest<br>
> +        - $R/debian11_snow3g_compile:latest<br>
> +        - $R/debian11_zuc_compile:$T<br>
> +        - $R/debian11_snow3g_compile:$T<br>
> +      extra_information:<br>
> +        arm64_environment_id: 58<br>
> +<br>
> +    - name: ubuntu22.04_compile<br>
> +      group: "ubuntu22.04"<br>
> +      base_image: "ubuntu:22.04"<br>
> +      platforms: [linux/amd64]<br>
> +      extra_information:<br>
> +        amd64_environment_id: 54<br>
> diff --git a/containers/template_engine/inventory_schema.json b/containers/template_engine/inventory_schema.json<br>
> new file mode 100644<br>
> index 0000000..7b79e44<br>
> --- /dev/null<br>
> +++ b/containers/template_engine/inventory_schema.json<br>
> @@ -0,0 +1,221 @@<br>
> +{<br>
> +    "$schema": "<a href="https://json-schema.org/draft-07/schema" rel="noreferrer" target="_blank">https://json-schema.org/draft-07/schema</a>",<br>
> +    "title": "dpdklab-ci container inventory schema",<br>
> +    "$comment": "SPDX-License-Identifier: BSD-3-Clause\nCopyright (c) 2022 University of New Hampshire",<br>
> +    "type": "object",<br>
> +    "properties": {<br>
> +        "abi": {<br>
> +            "type": "object",<br>
> +            "properties": {<br>
> +                "versions": {<br>
> +                    "type": "array",<br>
> +                    "items": {<br>
> +                        "type": "object",<br>
> +                        "properties": {<br>
> +                            "dpdk_version": {<br>
> +                                "type": "object",<br>
> +                                "properties": {<br>
> +                                    "major": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The major version number (usually the year of release)"<br>
> +                                    },<br>
> +                                    "minor": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The minor version number (usually the month of release)"<br>
> +                                    },<br>
> +                                    "revision": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The revision version number. Starts at 0."<br>
> +                                    },<br>
> +                                    "git_tag": {<br>
> +                                        "type": "string",<br>
> +                                        "description": "The git tag to check out to get this ABI version"<br>
> +                                    }<br>
> +                                },<br>
> +                                "required": [<br>
> +                                    "major",<br>
> +                                    "minor",<br>
> +                                    "revision",<br>
> +                                    "git_tag"<br>
> +                                ],<br>
> +                                "additionalProperties": false<br>
> +                            },<br>
> +                            "abi_version": {<br>
> +                                "type": "object",<br>
> +                                "properties": {<br>
> +                                    "major": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The major version number (usually the year of release)"<br>
> +                                    },<br>
> +                                    "minor": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The minor version number (usually the month of release)"<br>
> +                                    }<br>
> +                                },<br>
> +                                "required": [<br>
> +                                    "major",<br>
> +                                    "minor"<br>
> +                                ],<br>
> +                                "additionalProperties": false<br>
> +                            }<br>
> +                        },<br>
> +                        "required": [<br>
> +                            "dpdk_version",<br>
> +                            "abi_version"<br>
> +                        ]<br>
> +                    },<br>
> +                    "minItems": 0<br>
> +                }<br>
> +            },<br>
> +            "required": [<br>
> +                "versions"<br>
> +            ],<br>
> +            "additionalProperties": false<br>
> +        },<br>
> +        "dockerfiles": {<br>
> +            "type": "object",<br>
> +            "properties": {<br>
> +                "groups": {<br>
> +                    "type": "object",<br>
> +                    "patternProperties": {<br>
> +                        "^[a-z][a-z_0-9\\.]+$": {<br>
> +                            "type": "object",<br>
> +                            "properties": {<br>
> +                                "package_manager_command": {<br>
> +                                    "type": "string",<br>
> +                                    "description": "The command to install packages without user input."<br>
> +                                },<br>
> +                                "parent": {<br>
> +                                    "type": "string",<br>
> +                                    "description": "Which group to inherit from, or NONE if no parent exists"<br>
> +                                },<br>
> +                                "packages": {<br>
> +                                    "type": "array",<br>
> +                                    "description": "A list of package names to install",<br>
> +                                    "items": {<br>
> +                                        "type": "string"<br>
> +                                    },<br>
> +                                    "uniqueItems": true<br>
> +                                }<br>
> +                            },<br>
> +                            "required": [<br>
> +                                "parent",<br>
> +                                "packages"<br>
> +                            ],<br>
> +                            "additionalProperties": false<br>
> +                        }<br>
> +                    },<br>
> +                    "minProperties": 1<br>
> +                },<br>
> +                "targets": {<br>
> +                    "type": "array",<br>
> +                    "items": {<br>
> +                        "type": "object",<br>
> +                        "properties": {<br>
> +                            "name": {<br>
> +                                "type": "string",<br>
> +                                "description": "The name of the docker container"<br>
> +                            },<br>
> +                            "group": {<br>
> +                                "type": "string",<br>
> +                                "description": "Which group the target is a member of"<br>
> +                            },<br>
> +                            "base_image": {<br>
> +                                "type": "string",<br>
> +                                "description": "The base docker image."<br>
> +                            },<br>
> +                            "platforms": {<br>
> +                                "type": "array",<br>
> +                                "description": "What platforms to build for",<br>
> +                                "items": {<br>
> +                                    "type": "string",<br>
> +                                    "enum": [<br>
> +                                        "linux/amd64",<br>
> +                                        "linux/arm64",<br>
> +                                        "linux/riscv64",<br>
> +                                        "linux/ppc64le",<br>
> +                                        "linux/arm/v7",<br>
> +                                        "linux/arm/v6"<br>
> +                                    ]<br>
> +                                },<br>
> +                                "minItems": 1<br>
> +                            },<br>
> +                            "cross_file": {<br>
> +                                "type": "string",<br>
> +                                "description": "A cross file to compile meson with. If not present, meson's automatic behavior will be used."<br>
> +                            },<br>
> +                            "libabigail_revision": {<br>
> +                                "type": "string",<br>
> +                                "description": "A revision or branch of libabigail to check out before building for a given target."<br>
> +                            },<br>
> +                            "force_disable_abi": {<br>
> +                                "type": "boolean",<br>
> +                                "description": "Whether to forcibly disable ABI for this target. This should be used as a temporary measure until a fix can be created.",<br>
> +                                "default": "false"<br>
> +                            },<br>
> +                            "requires_coverity": {<br>
> +                                "type": "boolean",<br>
> +                                "description": "Whether this target requires the Coverity Scan binaries.",<br>
> +                                "default": "false"<br>
> +                            },<br>
> +                            "minimum_dpdk_version": {<br>
> +                                "type": "object",<br>
> +                                "properties": {<br>
> +                                    "major": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The major version number (usually the year of release)"<br>
> +                                    },<br>
> +                                    "minor": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The minor version number (usually the month of release)"<br>
> +                                    },<br>
> +                                    "revision": {<br>
> +                                        "type": "integer",<br>
> +                                        "description": "The revision version number. Starts at 0."<br>
> +                                    }<br>
> +                                },<br>
> +                                "required": [<br>
> +                                    "major",<br>
> +                                    "minor",<br>
> +                                    "revision"<br>
> +                                ],<br>
> +                                "additionalProperties": false<br>
> +                            },<br>
> +                            "extra_tags": {<br>
> +                                "type": "array",<br>
> +                                "description": "Tags to apply to this image",<br>
> +                                "items": {<br>
> +                                    "type": "string",<br>
> +                                    "description": "$R will be replaced with the 'registry_hostname' variable in this file. $T will be replaced with a timestamp in the form of '%Y-%m-%d'. $N will be replaced by the name of the target.. The tags '$R/$N:latest' and '$R/$N:$T' will always be present"<br>
> +                                }<br>
> +                            },<br>
> +                            "extra_information": {<br>
> +                                "type": "object",<br>
> +                                "description": "Extra information to be stored as a JSON file at /container_info.json",<br>
> +                                "additionalProperties": true<br>
> +                            }<br>
> +                        },<br>
> +                        "required": [<br>
> +                            "name",<br>
> +                            "group",<br>
> +                            "base_image",<br>
> +                            "platforms"<br>
> +                        ],<br>
> +                        "additionalProperties": false<br>
> +                    },<br>
> +                    "minItems": 1<br>
> +                }<br>
> +            },<br>
> +            "required": [<br>
> +                "groups",<br>
> +                "targets"<br>
> +            ],<br>
> +            "additionalProperties": false<br>
> +        }<br>
> +    },<br>
> +    "required": [<br>
> +        "abi",<br>
> +        "dockerfiles"<br>
> +    ],<br>
> +    "additionalProperties": false<br>
> +}<br>
> \ No newline at end of file<br>
<br>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div><b><span style="background-color:rgb(255,255,255)"><span style="color:rgb(102,102,102)">Adam Hassick</span></span></b><br></div><span style="color:rgb(102,102,102)"></span></div><div><span style="color:rgb(102,102,102)">Senior Developer</span></div><div><span style="color:rgb(102,102,102)"><span style="color:rgb(11,83,148)"><span style="background-color:rgb(255,255,255)">UNH InterOperability Lab</span></span></span><span style="color:rgb(102,102,102)"></span></div><div><span style="color:rgb(102,102,102)"><a href="mailto:ahassick@iol.unh.edu" target="_blank">ahassick@iol.unh.edu</a><br></span></div><div><span style="color:rgb(102,102,102)"><a href="https://www.iol.unh.edu/" target="_blank">iol.unh.edu</a><br></span></div>+1 (603) 475-8248<br></div></div>