get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/130214/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 130214,
    "url": "https://patches.dpdk.org/api/patches/130214/?format=api",
    "web_url": "https://patches.dpdk.org/project/ci/patch/20230811200018.5650-7-ahassick@iol.unh.edu/",
    "project": {
        "id": 5,
        "url": "https://patches.dpdk.org/api/projects/5/?format=api",
        "name": "CI",
        "link_name": "ci",
        "list_id": "ci.dpdk.org",
        "list_email": "ci@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dpdk-ci",
        "webscm_url": "https://git.dpdk.org/tools/dpdk-ci/",
        "list_archive_url": "https://inbox.dpdk.org/ci",
        "list_archive_url_format": "https://inbox.dpdk.org/ci/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230811200018.5650-7-ahassick@iol.unh.edu>",
    "list_archive_url": "https://inbox.dpdk.org/ci/20230811200018.5650-7-ahassick@iol.unh.edu",
    "date": "2023-08-11T20:00:18",
    "name": "[v9,6/6] containers/Makefile: Makefile to automate builds",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "323a7986664fad952bddc06fd6710aeb39d36b04",
    "submitter": {
        "id": 3127,
        "url": "https://patches.dpdk.org/api/people/3127/?format=api",
        "name": "Adam Hassick",
        "email": "ahassick@iol.unh.edu"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/ci/patch/20230811200018.5650-7-ahassick@iol.unh.edu/mbox/",
    "series": [
        {
            "id": 29199,
            "url": "https://patches.dpdk.org/api/series/29199/?format=api",
            "web_url": "https://patches.dpdk.org/project/ci/list/?series=29199",
            "date": "2023-08-11T20:00:12",
            "name": "Community Lab Containers and Builder Engine",
            "version": 9,
            "mbox": "https://patches.dpdk.org/series/29199/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/130214/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/130214/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ci-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id DDCC543038;\n\tFri, 11 Aug 2023 22:03:08 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D801A4325F;\n\tFri, 11 Aug 2023 22:03:08 +0200 (CEST)",
            "from mail-qt1-f195.google.com (mail-qt1-f195.google.com\n [209.85.160.195])\n by mails.dpdk.org (Postfix) with ESMTP id 17CFB40E03\n for <ci@dpdk.org>; Fri, 11 Aug 2023 22:03:06 +0200 (CEST)",
            "by mail-qt1-f195.google.com with SMTP id\n d75a77b69052e-40fbf360a9cso16297971cf.3\n for <ci@dpdk.org>; Fri, 11 Aug 2023 13:03:06 -0700 (PDT)",
            "from pogmachine2.loudonlune.net ([216.212.51.182])\n by smtp.gmail.com with ESMTPSA id\n f19-20020ac84993000000b004053bcffe49sm1399874qtq.9.2023.08.11.13.03.04\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 11 Aug 2023 13:03:05 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1691784185; x=1692388985;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=EVAI7GINR2x3hwMo9QPtJKzfBALu3j8uWPwKx7d9/GU=;\n b=UgYFC1eC8DJ4x6n3xGsle3Z3yFaFt9ksVdyiXn7O2932PgxpO8EshXUvNl8L4hAfAf\n Zle3rjACXOLiCaBz3NVZDCQ+sUBxRmdG69Er7iCL4TCDml97+AQFVdU+J5RuQWGPFfVp\n 8qmmJz/8ksJdzZLASWQZGTba7wedsDwBRuJnE=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20221208; t=1691784185; x=1692388985;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=EVAI7GINR2x3hwMo9QPtJKzfBALu3j8uWPwKx7d9/GU=;\n b=OD9Hn8IVXVbNe+yiH1G0Umyy409pJONBr5HifZdc8y9vt/oOCLsZZXqzc7f05Qs0pU\n qZbc5u3puyryPgOM7wdGWPFRG+FIxyp0Kh61OGGwgEMg3GDnYMGHLJl2v1WkkJswOKZI\n nSJJ7q6tEi2oWlVQ6mAHhLjVFlOodsaXARbPMj7AN7AK8JHvqOFuv40DY06sOJJ8JPNq\n VK7lI2Zo6xHiHBm3BZsuh6xYHQ8n1AVDkJeZkNSBMR6QUrUEyQ3JdKGiGVdO0wXaAlmc\n 4A4Pv8gNmjsAyDh0Xf/hevh21pwi0OQqn8DSfeiZ81qnyXbJIjFIjRWCyUJx/JdDpPs5\n QaXg==",
        "X-Gm-Message-State": "AOJu0YwN+30wYH+Xi3v5E6CKhQjc5GZSo2e0zDoresAkpuLlwBLqInzO\n orZ60Zwl/O+Dzr5bVPWr4DA7JjRheAsaIVy76TN/scv1YTgXQtlWS/qGZKqobAdV0DKnDQr9lRJ\n nVLVmB7Q/6OKSi3IFBdZ7KJpFVbNPYuZgJO8V22DWMt86eYZ9YHMp1r9BcEKTaA/UlrjrJA==",
        "X-Google-Smtp-Source": "\n AGHT+IE2ap0LUhVXmHTkWd9htK5EvGXQhuisO+vdl1ah12vuo4y0qr7RVENCavFQLkBCsNrlosSUcw==",
        "X-Received": "by 2002:a05:622a:490:b0:408:483e:5f6e with SMTP id\n p16-20020a05622a049000b00408483e5f6emr3151176qtx.29.1691784185292;\n Fri, 11 Aug 2023 13:03:05 -0700 (PDT)",
        "From": "Adam Hassick <ahassick@iol.unh.edu>",
        "To": "ci@dpdk.org",
        "Cc": "aconole@redhat.com, alialnu@nvidia.com,\n Owen Hilyard <ohilyard@iol.unh.edu>, Adam Hassick <ahassick@iol.unh.edu>",
        "Subject": "[PATCH v9 6/6] containers/Makefile: Makefile to automate builds",
        "Date": "Fri, 11 Aug 2023 16:00:18 -0400",
        "Message-ID": "<20230811200018.5650-7-ahassick@iol.unh.edu>",
        "X-Mailer": "git-send-email 2.41.0",
        "In-Reply-To": "<20230811200018.5650-1-ahassick@iol.unh.edu>",
        "References": "<20230811200018.5650-1-ahassick@iol.unh.edu>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "ci@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK CI discussions <ci.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/ci>,\n <mailto:ci-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/ci/>",
        "List-Post": "<mailto:ci@dpdk.org>",
        "List-Help": "<mailto:ci-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/ci>,\n <mailto:ci-request@dpdk.org?subject=subscribe>",
        "Errors-To": "ci-bounces@dpdk.org"
    },
    "content": "From: Owen Hilyard <ohilyard@iol.unh.edu>\n\nThe Makefile that can be used to build all of the container images using\n\"make build\", and can also be used to push them to a remote repository\n(for use in CI).\n\nSigned-off-by: Owen Hilyard <ohilyard@iol.unh.edu>\nSigned-off-by: Adam Hassick <ahassick@iol.unh.edu>\n---\n containers/Makefile | 258 ++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 258 insertions(+)\n create mode 100644 containers/Makefile",
    "diff": "diff --git a/containers/Makefile b/containers/Makefile\nnew file mode 100644\nindex 0000000..047a208\n--- /dev/null\n+++ b/containers/Makefile\n@@ -0,0 +1,258 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright (c) 2023 University of New Hampshire\n+\n+# Recommended Resources:\n+#\tAll:\n+# \t\t~100 GB of disk space: These are not minimal containers, they\n+# \t\t\t\t\t\t\t   have full distros in them minus the kernel.\n+#\t\t\t\t\t\t\t   With ABI images, expect 10 GB per distro per\n+#\t\t\t\t\t\t\t   platform. Without, it's closer to 2 GB per distro\n+#\t\t\t\t\t\t\t   per platform.\n+#\n+#\tNo ABI:\n+#\t\tSerial Build (make -j 1): Should run on a laptop.\n+# \t\tParallel build (make -j $(nproc)): 1 GB of free ram per job should be good enough.\n+#\tABI:\n+#\t\tTime: If you are building more than four distros, or you have one distro that is built under\n+#\t\t\t  emulation (x86 host + arm container or the inverse), it may be best to run it overnight.\n+#\t\t\t  Some versions of qemu + podman will try to compile with a single thread under emulation,\n+#\t\t\t  which can cause what should be an hour-long compile to turn into a 8+ hour compile.\n+#\t\tSerial Build (make -j 1): 6 GB of free ram should be fine\n+#   \tParallel build (make -j $(nproc)): 6 GB of free ram per job. You may be compiling ~20 versions of DPDK at the same time, with some under emulation.\n+#\n+\n+\n+############ Arguments #############\n+# Set to 'Y' to override distro detection\n+DPDK_CI_CONTAINERS_ON_RHEL?=$(shell (test -f /etc/redhat-release && grep -q 'Red Hat Enterprise Linux' /etc/redhat-release && echo 'Y') || echo 'N')\n+\n+# If set to 'Y' and any container is detected as unbuildable, fail the build.\n+DPDK_CI_CONTAINERS_FAIL_ON_UNBUILDABLE?=N\n+\n+# If set to 'Y', build the ABIs for specificed DPDK versions and embed them\n+# in the container\n+DPDK_CI_CONTAINERS_BUILD_ABI?=N\n+\n+# If set to 'Y', the \"latest\" tag for all images will be omitted. Intended for testing changes to your inventory.\n+DPDK_CI_CONTAINERS_NO_LATEST_TAG?=N\n+\n+# If set to 'Y', will build containers that rely on the Coverity Scan tool.\n+DPDK_CI_CONTAINERS_COVERITY?=N\n+\n+# The path to Coverity Scan binaries. These will be installed inside the container.\n+# This field is only required if the Coverity flag is enabled.\n+# DPDK_CI_CONTAINERS_COVERITY_PATH?=/opt/dpdklab/coverity\n+\n+# If set to a non-empty value, overrides the auto-generated date tag with the value.\n+# DPDK_CI_CONTAINERS_DATE_TAG_OVERRIDE=70-01-01\n+\n+# If set to 'Y', build libabigail from source for distros that do not have it.\n+# If DPDK_CI_CONTAINERS_BUILD_ABI='Y', then this is always enabled.\n+ifeq ($(DPDK_CI_CONTAINERS_BUILD_ABI), Y)\n+DPDK_CI_CONTAINERS_BUILD_LIBABIGAIL=Y\n+else\n+DPDK_CI_CONTAINERS_BUILD_LIBABIGAIL?=N\n+endif\n+\n+# If set to an integer value, this will restrict the count of Ninja workers performing the ABI build to the given integer.\n+# The argument is benign if DPDK_CI_CONTANERS_BUILD_ABI is 'N'.\n+# DPDK_CI_CONTAINERS_NINJA_WORKERS?=16\n+\n+# If set to 'Y', only build containers matching the host architecture\n+DPDK_CI_CONTAINERS_ONLY_HOST_ARCH?=N\n+\n+# If set to 'Y', assumes only host arch and disables the push_manifests target.\n+DPDK_CI_CONTAINERS_IS_BUILDER?=N\n+\n+# Used to set the python interpreter\n+DPDK_CI_CONTAINERS_PYTHON3_CMD?=python3.8\n+\n+# The base program to use to build individual containers.\n+DPDK_CI_CONTAINER_BUILDER_PROGRAM?=podman\n+\n+# The url of the git repository to pull libabigail from\n+DPDK_CI_CONTAINERS_LIBABIGAIL_CLONE_URL?=git://sourceware.org/git/libabigail.git\n+\n+# The url of the git repository to pull DPDK from\n+DPDK_CI_CONTAINERS_DPDK_CLONE_URL?=https://dpdk.org/git/dpdk\n+\n+# The url of the git repository to pull the DPDK CI scripts from.\n+DPDK_CI_CONTAINERS_DPDK_CI_CLONE_URL?=https://dpdk.org/git/tools/dpdk-ci\n+\n+# The url of the git repository to pull DPDK stable from\n+DPDK_CI_CONTAINERS_DPDK_STABLE_CLONE_URL?=https://dpdk.org/git/dpdk-stable\n+\n+# The tag to apply to the built container builder image\n+DPDK_CI_CONTAINERS_CONTAINER_BUILDER_TAG?=dpdk_ci_container_builder\n+\n+# Extra arguments to add to the push command, can be used for credentials\n+DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS?=\n+\n+# Provide the hostname of the registry to push up to\n+DPDK_CI_CONTAINERS_REGISTRY_HOSTNAME?=localhost\n+\n+# The path to a directory to be recursively copied to $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY). Not used if unset.\n+#DPDK_CI_CONTAINERS_EXTRA_SCRIPTS_PATH?=\n+\n+DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY?=$(CURDIR)/container_context\n+############ End Arguments #############\n+\n+############ Internal Variables #############\n+SCRIPT_ARGS=--output-dir \"$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\"\n+\n+ifeq ($(DPDK_CI_CONTAINERS_ON_RHEL), Y)\n+\tSCRIPT_ARGS +=--rhel\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_FAIL_ON_UNBUILDABLE), Y)\n+\tSCRIPT_ARGS +=--fail-on-unbuildable\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_BUILD_ABI), Y)\n+\tSCRIPT_ARGS +=--build-abi\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_BUILD_LIBABIGAIL), Y)\n+\tSCRIPT_ARGS +=--build-libabigail\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_ONLY_HOST_ARCH), Y)\n+\tSCRIPT_ARGS +=--host-arch-only\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_NO_LATEST_TAG), Y)\n+\tSCRIPT_ARGS +=--omit-latest\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_IS_BUILDER), Y)\n+\tSCRIPT_ARGS +=--builder-mode\n+endif\n+\n+ifneq ($(DPDK_CI_CONTAINERS_DATE_TAG_OVERRIDE),)\n+\tSCRIPT_ARGS +=--date $(DPDK_CI_CONTAINERS_DATE_TAG_OVERRIDE)\n+endif\n+\n+ifneq ($(DPDK_CI_CONTAINERS_NINJA_WORKERS),)\n+\tSCRIPT_ARGS +=--ninja-workers $(DPDK_CI_CONTAINERS_NINJA_WORKERS)\n+endif\n+\n+ifeq ($(DPDK_CI_CONTAINERS_COVERITY), Y)\n+\tSCRIPT_ARGS +=--coverity\n+endif\n+\n+SCRIPT_DIRECTORY=$(CURDIR)/template_engine\n+\n+LIBABIGAIL_DIRECTORY=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/libabigail\n+DPDK_DIRECTORY=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/dpdk\n+DPDK_CI_DIRECTORY=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/dpdk-ci\n+DPDK_STABLE_DIRECTORY=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/dpdk-stable\n+\n+DOCKERFILE=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/Dockerfile\n+\n+MAKE_DOCKERFILE_SCRIPT=$(SCRIPT_DIRECTORY)/make_dockerfile.py\n+MAKE_DOCKERFILE_COMMAND=$(DPDK_CI_CONTAINERS_PYTHON3_CMD) $(MAKE_DOCKERFILE_SCRIPT)\n+\n+TEMPLATE_FILE_DIRECTORY=$(SCRIPT_DIRECTORY)/templates\n+DOCKER_CONTAINER_TEMPLATE_DIR=$(TEMPLATE_FILE_DIRECTORY)/containers\n+\n+INVENTORY_FILE=$(SCRIPT_DIRECTORY)/inventory.yaml\n+\n+EXTRA_SCRIPTS_DIRECTORY=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/scripts\n+\n+COVERITY_DIRECTORY=$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/coverity\n+\n+GIT_FETCH_ARGS=--all --tags\n+\n+CONTAINER_BUILDER_DOCKERFILE=$(CURDIR)/container_builder.dockerfile\n+\n+export\n+############ End Internal Variables #############\n+\n+.PHONY: build push push_images push_manifests make_docker_files_in_container build_builder_container docker_deps extra_scripts libabigail dpdk dpdk-ci coverity clean_container_files clean\n+\n+build: make_docker_files_in_container external_files\n+\t$(MAKE) -C $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) build_all\n+\n+push_images: make_docker_files_in_container external_files\n+\t$(MAKE) -C $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) push_image_all\n+\n+push_manifests: make_docker_files_in_container\n+\t$(MAKE) -C $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) push_manifest_all\n+\n+push: push_images push_manifests\n+\n+make_docker_files_in_container: build_builder_container $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n+\t$(DPDK_CI_CONTAINER_BUILDER_PROGRAM) run --rm -v $(CURDIR):/container_workspace:z -v $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY):/container_workspace/container_context:z \\\n+\t\t-e DPDK_CI_CONTAINERS_ON_RHEL=$(DPDK_CI_CONTAINERS_ON_RHEL) \\\n+\t\t-e DPDK_CI_CONTAINERS_BUILD_LIBABIGAIL=$(DPDK_CI_CONTAINERS_BUILD_LIBABIGAIL) \\\n+\t\t-e DPDK_CI_CONTAINERS_BUILD_ABI=$(DPDK_CI_CONTAINERS_BUILD_ABI) \\\n+\t\t-e DPDK_CI_CONTAINERS_FAIL_ON_UNBUILDABLE=$(DPDK_CI_CONTAINERS_FAIL_ON_UNBUILDABLE) \\\n+\t\t-e DPDK_CI_CONTAINERS_REGISTRY_HOSTNAME='$(DPDK_CI_CONTAINERS_REGISTRY_HOSTNAME)' \\\n+\t\t-e DPDK_CI_CONTAINERS_ONLY_HOST_ARCH='$(DPDK_CI_CONTAINERS_ONLY_HOST_ARCH)' \\\n+\t\t-e DPDK_CI_CONTAINERS_NO_LATEST_TAG='$(DPDK_CI_CONTAINERS_NO_LATEST_TAG)' \\\n+\t\t-e DPDK_CI_CONTAINERS_IS_BUILDER='$(DPDK_CI_CONTAINERS_IS_BUILDER)' \\\n+\t\t-e DPDK_CI_CONTAINERS_DATE_TAG_OVERRIDE='$(DPDK_CI_CONTAINERS_DATE_TAG_OVERRIDE)' \\\n+\t\t-e DPDK_CI_CONTAINERS_NINJA_WORKERS='$(DPDK_CI_CONTAINERS_NINJA_WORKERS)' \\\n+\t\t-e DPDK_CI_CONTAINERS_COVERITY='$(DPDK_CI_CONTAINERS_COVERITY)' \\\n+\t\t$(DPDK_CI_CONTAINERS_CONTAINER_BUILDER_TAG) make docker_deps\n+\n+external_files: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) extra_scripts coverity\n+\n+build_builder_container:\n+\t$(DPDK_CI_CONTAINER_BUILDER_PROGRAM) build -f $(CONTAINER_BUILDER_DOCKERFILE) -t $(DPDK_CI_CONTAINERS_CONTAINER_BUILDER_TAG) $(CURDIR)\n+\n+docker_deps: $(DOCKERFILE) deps extra_scripts\n+\tchmod 666 $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)/*.dockerfile\n+\n+$(DOCKERFILE): $(INVENTORY_FILE) $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) deps $(MAKE_DOCKERFILE_SCRIPT) $(shell find $(DOCKER_CONTAINER_TEMPLATE_DIR) -type f)\n+\tcd $(SCRIPT_DIRECTORY) && $(MAKE_DOCKERFILE_COMMAND) $(SCRIPT_ARGS)\n+\n+deps: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) dpdk dpdk-ci libabigail dpdk-stable\n+\n+extra_scripts: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) $(EXTRA_SCRIPTS_DIRECTORY) $(DPDK_CI_CONTAINERS_EXTRA_SCRIPTS_PATH)\n+ifdef DPDK_CI_CONTAINERS_EXTRA_SCRIPTS_PATH\n+\tcp -pur $(DPDK_CI_CONTAINERS_EXTRA_SCRIPTS_PATH)/* $(EXTRA_SCRIPTS_DIRECTORY)\n+endif\n+\n+# Clone libabigail source\n+libabigail: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n+\tgit -C $(LIBABIGAIL_DIRECTORY) fetch $(GIT_FETCH_ARGS) || git clone $(DPDK_CI_CONTAINERS_LIBABIGAIL_CLONE_URL) $(LIBABIGAIL_DIRECTORY)\n+\tgit -C $(LIBABIGAIL_DIRECTORY) describe --tags `git -C $(LIBABIGAIL_DIRECTORY) rev-list --tags --max-count=1` | xargs -n 1 git -C $(LIBABIGAIL_DIRECTORY) checkout\n+\n+# Clone DPDK source\n+dpdk: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n+\tgit -C $(DPDK_DIRECTORY) fetch $(GIT_FETCH_ARGS) || git clone $(DPDK_CI_CONTAINERS_DPDK_CLONE_URL) $(DPDK_DIRECTORY)\n+\n+# Clone DPDK CI tools source.\n+dpdk-ci: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n+\tgit -C $(DPDK_CI_DIRECTORY) fetch $(GIT_FETCH_ARGS) || git clone $(DPDK_CI_CONTAINERS_DPDK_CI_CLONE_URL) $(DPDK_CI_DIRECTORY)\n+\n+# Copy the Coverity Scan binaries from a source into the context directory.\n+coverity: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY) $(COVERITY_DIRECTORY)\n+ifeq ($(DPDK_CI_CONTAINERS_COVERITY),Y)\n+ifndef DPDK_CI_CONTAINERS_COVERITY_PATH\n+\texit 1 # The coverity path must be set if building Coverity containers is enabled.\n+else\n+\tcp -pur $(DPDK_CI_CONTAINERS_COVERITY_PATH)/* $(COVERITY_DIRECTORY)\n+endif\n+else\n+\t# Coverity is disabled for this run.\n+endif\n+\n+dpdk-stable: $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n+\tgit -C $(DPDK_STABLE_DIRECTORY) fetch $(GIT_FETCH_ARGS) || git clone $(DPDK_CI_CONTAINERS_DPDK_STABLE_CLONE_URL) $(DPDK_STABLE_DIRECTORY)\n+\n+$(EXTRA_SCRIPTS_DIRECTORY):\n+\tmkdir -p $(EXTRA_SCRIPTS_DIRECTORY)\n+\n+$(COVERITY_DIRECTORY):\n+\tmkdir -p $(COVERITY_DIRECTORY)\n+\n+$(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY):\n+\tmkdir -p $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n+\n+clean_container_files:\n+\trm $(DOCKERFILE)\n+\n+clean:\n+\trm -rf $(DPDK_CI_CONTAINERS_CONTEXT_DIRECTORY)\n",
    "prefixes": [
        "v9",
        "6/6"
    ]
}