| # Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| WORKFLOW ?= nvidia-docker |
| |
| DISTRIBUTIONS := ubuntu20.04 ubuntu18.04 centos8 fedora35 |
| |
| IMAGE_TARGETS := $(patsubst %,image-%, $(DISTRIBUTIONS)) |
| RUN_TARGETS := $(patsubst %,run-%, $(DISTRIBUTIONS)) |
| RELEASE_TARGETS := $(patsubst %,release-%, $(DISTRIBUTIONS)) |
| LOCAL_TARGETS := $(patsubst %,local-%, $(DISTRIBUTIONS)) |
| |
| .PHONY: $(IMAGE_TARGETS) $(RUN_TARGETS) |
| |
| image-%: DOCKERFILE = docker/$(*)/Dockerfile |
| |
| images: $(IMAGE_TARGETS) |
| $(IMAGE_TARGETS): image-%: $(DOCKERFILE) |
| docker build ${PLATFORM_ARGS} \ |
| -t nvidia-container-toolkit-repo-test:$(*) \ |
| -f $(DOCKERFILE) \ |
| $(shell dirname $(DOCKERFILE)) |
| |
| |
| %-ubuntu20.04: ARCH ?= amd64 |
| %-ubuntu18.04: ARCH ?= amd64 |
| %-centos8: ARCH ?= x86_64 |
| %-fedora35: ARCH ?= x86_64 |
| |
| PLATFORM_ARGS = --platform=linux/${ARCH} |
| |
| RELEASE_TEST_DIR := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))) |
| PROJECT_ROOT := $(RELEASE_TEST_DIR)/../.. |
| |
| LOCAL_PACKAGE_ROOT := $(PROJECT_ROOT)/dist |
| |
| local-%: DIST = $(*) |
| local-%: LOCAL_REPO_ARGS = -v $(LOCAL_PACKAGE_ROOT)/$(DIST)/$(ARCH):/local-repository |
| $(LOCAL_TARGETS): local-%: run-% |
| |
| run-%: DIST = $(*) |
| $(RUN_TARGETS): run-%: image-% |
| docker run ${PLATFORM_ARGS} --rm -ti \ |
| $(LOCAL_REPO_ARGS) \ |
| nvidia-container-toolkit-repo-test:$(*) |
| |
| # Ensure that the local package root exists |
| $(RELEASE_TARGETS): release-%: $(LOCAL_PACKAGE_ROOT)/$(*)/$(ARCH) |
| $(PROJECT_ROOT)/scripts/build-packages.sh $(*)-$(ARCH) |